Что такое таксономия в Wordpress
На прошлом уроке мы создали новый тип записи post type book более подходящий для продажи книг, а на этом уроке научимся создавать для него таксономию в Wordpress.
Таксономия нужна для того, чтобы структурировать новые типы записей или группировать стандартные посты в WordPress, разделяя их например по типу оформления, предназначения и характеристик. Новый тип записи требует регистрации своей таксономии - категории и меток. Все записи можно раскидать по своим категориям и присвоить им теги. Эти разделы можно назвать одним общим словом - таксономия.
Существуют стандартные таксономии - категории и теги, они уже есть в WordPress по умолчанию и пользовательские. Разработчики начинают создавать пользовательские таксономии для произвольных типов записей, когда не хватает дефолтных. На одном из уроков мы уже создавали произвольный тип записей - post type book, ссылка на него в начале статьи.
Рассмотрим на примере post type book, которому необходимо создать свою таксономию. Предположим мы продаем на сайте книги и необходимо отсортировать их по жанру, по цене, по возрасту читателя. Для каждого параметра надо создать свою WordPress таксономию, привязать к соответствующим постам (1 пост = 1 книга) и в дальнейшем организовать на сайте фильтрацию книг.
Для начала, давайте зарегистрируем свою первую таксономию. Давайте посмотрим пример регистрации таксономии на codex.wordpress.org. Скопируем оттуда функцию register_taxonomy(), откроем наш function.php и внутри функции function create_post_type(), добавим скопированный код и заменяем на свои значения.
register_taxonomy(
'price',
'book',
array(
'label' => __( 'price' ),
'rewrite' => array( 'slug' => 'price' ),
)
);
Давайте зарегистрируем нашу первую таксономию price для типа записи book. Далее идет массив с настройками, в базовом примере стоит три настраиваемых параметра, их можно удалить и добавить новые, все возможные параметры есть в документации кодекса. Например параметр rewrite, можно удалить из кода регистрации, если slug (хвостик ссылки) совпадает с названием таксономии.
Теперь вы видите, что в админке у произвольного типа поста book появился параметр price.
Для сортировки по возрасту, зарегистрируем ещё одну таксономию - age. Таких таксономий можно создавать неограниченное количество для любых видов постов.
register_taxonomy(
'age',
'book',
array(
'label' => __( 'age' ),
'rewrite' => array( 'slug' => 'age' ),
)
);
По умолчанию в админ-меню сейчас показываются все созданные таксономии, чтобы убрать их оттуда, надо к коду выше после параметра rewrite с новой строки добавить параметр show_in_menu. Данный параметр совершенно не нужен в меню.
'show_in_menu' => false,
Если мы перейдем в редактирование "Добавить запись", то увидим два поля с двумя таксономиями, куда добавим свои метки.
Данный формат нам не совсем подходит, так как нет возможности выбрать для добавляемой книги, только одну цену и один возраст. Надо в код добавить ещё одну настройку hierarchical.
'hierarchical' => true,
Теперь книги можно отсортировать по цене и возрасту, осталось только вывести наши terms на сам сайт, пока мы их видим только в админ-панели. Для этого есть функция get_terms, которая выводит на страницу списки таксономий.
$terms = get_terms( array(
'taxonomy' => 'price',
'hide_empty' => false,
) );
Функция get_terms тоже принимает разные параметры, смотрите опять же в кодексе WordPress.
Для тех у кого не хватает терпения разбираться как устроена WordPress таксономия, но очень хочется увидеть конечный результат, то установите плагин, называется он: WordPress Meta Data and Taxonomies Filter (MDTF).
-
- Михаил Русаков
Комментарии (0):
Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.