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()

Источник: misha.blog

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

Путешествует по миру и рассказывает всем о WordPress лично, у себя в блогах и на курсах в Санкт-Петербурге. Умеет просто объяснять сложные вещи, делает это красиво. Организовывает неплохие WordCamp's, но совсем не умеет слушать чужие доклады.

Добавить комментарий

%d такие блоггеры, как: