Создать рубрику к определённому типу записи

function add_new_taxonomies() {	
/* создаем функцию с произвольным именем и вставляем 
в неё register_taxonomy() */	
	register_taxonomy('artists',
		array('picture'),
		array(
			'hierarchical' => true,
			/* true - по типу рубрик, false - по типу меток, 
			по умолчанию - false */
			'labels' => array(
				/* ярлыки, нужные при создании UI, можете
				не писать ничего, тогда будут использованы
				ярлыки по умолчанию */
				'name' => 'Художники',
				'singular_name' => 'Художник',
				'search_items' =>  'Найти художника',
				'popular_items' => 'Популярные художники',
				'all_items' => 'Все художники',
				'parent_item' => null,
				'parent_item_colon' => null,
				'edit_item' => 'Редактировать художника', 
				'update_item' => 'Обновить художника',
				'add_new_item' => 'Добавить нового художника',
				'new_item_name' => 'Название',
				'separate_items_with_commas' => 'Разделяйте художников запятыми',
				'add_or_remove_items' => 'Добавить или удалить',
				'choose_from_most_used' => 'Выбрать из наиболее часто используемых',
				'menu_name' => 'Художники'
			),
			'public' => true, 
			/* каждый может использовать таксономию, либо
			только администраторы, по умолчанию - true */
			'show_in_nav_menus' => true,
			/* добавить на страницу создания меню */
			'show_ui' => true,
			/* добавить интерфейс создания и редактирования */
			'show_tagcloud' => true,
			/* нужно ли разрешить облако тегов для этой таксономии */
			'update_count_callback' => '_update_post_term_count',
			/* callback-функция для обновления счетчика $object_type */
			'query_var' => true,
			/* разрешено ли использование query_var, также можно 
			указать строку, которая будет использоваться в качестве 
			него, по умолчанию - имя таксономии */
			'rewrite' => array(
			/* настройки URL пермалинков */
				'slug' => 'artists', // ярлык
				'hierarchical' => true // разрешить вложенность
 
			),
		)
	);
}
add_action( 'init', 'add_new_taxonomies', 0 );

в функшн

или

add_action( 'init', 'create_project_taxonomies', 0 );
function create_project_taxonomies(){
  $labels = array(
    'name' => _x( 'Категории проектов', 'taxonomy general name' ),
    'singular_name' => _x( 'Категория проекта', 'taxonomy singular name' ),
    'search_items' =>  __( 'Найти категорию проекта' ),
    'all_items' => __( 'Все категории проектов' ),
    'parent_item' => __( 'Родительская категория проекта' ),
    'parent_item_colon' => __( 'Родительская категория' ),
    'edit_item' => __( 'Родительская категория' ),
    'update_item' => __( 'Обновить категорию' ),
    'add_new_item' => __( 'Добавить новую категорию' ),
    'new_item_name' => __( 'Название новой категории проектов' ),
    'menu_name' => __( 'Категории проектов' ),
  );

  register_taxonomy('projects', array('project'), array(
    'hierarchical' => true,
    'labels' => $labels,
    'show_ui' => true,
    'query_var' => true,
    'rewrite' => array( 'slug' => 'projects' ),
  ));

}

Добавить несколько категорий к одному типу записи

add_action( 'init', 'create_job_taxonomies', 0 );
function create_job_taxonomies(){
  $labels = array(
    'name' => _x( 'Местоположение', 'taxonomy general name' ),
    'singular_name' => _x( 'Местоположение', 'taxonomy singular name' ),
    'search_items' =>  __( 'Найти местоположение' ),
    'all_items' => __( 'Все местоположения' ),
    'parent_item' => __( 'Страна' ),
    'parent_item_colon' => __( 'Страна' ),
    'edit_item' => __( 'Редактировать' ),
    'update_item' => __( 'Обновить' ),
    'add_new_item' => __( 'Добавить новое' ),
    'new_item_name' => __( 'Название местоположения' ),
    'menu_name' => __( 'Местоположение' ),
  );

  register_taxonomy('location', array('job'), array(
    'hierarchical' => true,
    'labels' => $labels,
    'show_ui' => true,
    'query_var' => true,
    'rewrite' => array( 'slug' => 'location' ),
  ));
  
$labels = array(
    'name' => _x( 'Возраст', 'taxonomy general name' ),
    'singular_name' => _x( 'Возраст', 'taxonomy singular name' ),
    'search_items' =>  __( 'Найти возраст' ),
    'all_items' => __( 'Все возраста' ),
    'parent_item' => __( 'Возраст' ),
    'parent_item_colon' => __( 'Возраст' ),
    'edit_item' => __( 'Редактировать' ),
    'update_item' => __( 'Обновить' ),
    'add_new_item' => __( 'Добавить новый возраст' ),
    'new_item_name' => __( 'Название возраст' ),
    'menu_name' => __( 'Возраст' ),
  );

  register_taxonomy('age', array('job'), array(
    'hierarchical' => true,
    'labels' => $labels,
    'show_ui' => true,
    'query_var' => true,
    'rewrite' => array( 'slug' => 'age' ),
  ));
  
}