register_taxonomy() — создание таксономии

Что такое таксономия? Рубрики, метки — это и есть таксономии.

То есть получается, что заюзав упомянутую функцию, можно создать абсолютно независимые категории (или метки), с отдельным интерфейсом.

Короче говоря, когда во время разработки сайта начинает не хватать стандартных рубрик и меток — создаём таксономии.

Функция register_taxonomy()

register_taxonomy($taxonomy, $object_type, $args);

$taxonomy
(строка) Название таксономии. Не должно содержать пробелов и заглавных букв.

$object_type
(массив/строка) Тип объекта (или объектов), для которых создаётся таксономия. По умолчанию в WordPress существуют следующие типы:

  • post
  • page
  • mediapage
  • attachment
  • revision
  • nav_menu_item

Также допускается возможность создания своего собственного объекта

$args
(массив) Список параметров.

Не хочу простым текстом перечислять все параметры, лучше перейдём к примеру и там сразу же и разберёмся.

function add_new_taxonomies() {	
/* создаем функцию с произвольным именем и вставляем 
в неё register_taxonomy() */	
	register_taxonomy('platform',
		array('post'),
		array(
			'hierarchical' => false,
			/* 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' => 'platform', // ярлык
				'hierarchical' => false // разрешить вложенность
 
			),
		)
	);
}
add_action( 'init', 'add_new_taxonomies', 0 );

Короче этот код нужно вставить в functions.php, а дальше получится вот что:

1. Пункт в меню для созданной таксономии:

таксономии в меню

2. При переходе по нему попадаем на страницу, схожую со страницей создание меток/рубрик. Я немного уменьшил окошко, потому что не хотел масштабировать картинку и терять качество.

страница создания элементов таксономии

3. На странице создания записи появляется блок с выбором элементов новой таксономии, в примере — игровых платформ.

выбор элементов таксономии

Кстати, одно важно замечание, в случае, если вы использовали параметр «rewrite» для пермалинков, вам нужно перейти на страницу редактирования постоянных ссылок в настройках и просто нажать кнопку «Сохранить изменения», либо заюзать один раз flush_rules()

Миша Рудрастых Разработчик WordPress WooCommerce

Миша Рудрастых

Впервые познакомился с WordPress в 2009 году, и после двух лет мучений с Joomla и самописными движками это был просто бальзам на душу. С 2014 года меня можно встретить на WordCamp — официальной конфе по WP в Москве, иногда там выступаю. Также в настоящее время веду курсы по WordPress в Epic Skills в Питере.