Кастомные таксономии — мощный инструмент для организации и структурирования контента в WordPress. В отличие от стандартных категорий и меток, кастомные таксономии позволяют создавать собственные группы и системы классификации, адаптированные под нужды конкретного сайта. В этой статье разберём, как создать кастомные таксономии с помощью кода, а также рассмотрим полезные плагины для упрощения задачи.
Что такое кастомные таксономии в WordPress
Таксономии в WordPress — это способ группировки записей. По умолчанию в системе есть две таксономии: category и tag. Кастомные таксономии позволяют создавать дополнительные типы группировок, например, жанры, направления, темы, типы продуктов и так далее.
Использование кастомных таксономий повышает удобство навигации по сайту и улучшает SEO, позволяя структурировать контент более гибко.
Регистрируем кастомную таксономию через functions.php
Для регистрации кастомной таксономии в вашей теме или плагине используется функция register_taxonomy(). Рассмотрим пример создания таксономии topic для постов:
function two_wp_register_taxonomy_topic() {
$labels = array(
'name' => 'Темы',
'singular_name' => 'Тема',
'search_items' => 'Поиск тем',
'all_items' => 'Все темы',
'parent_item' => 'Родительская тема',
'parent_item_colon' => 'Родительская тема:',
'edit_item' => 'Редактировать тему',
'update_item' => 'Обновить тему',
'add_new_item' => 'Добавить новую тему',
'new_item_name' => 'Новое имя темы',
'menu_name' => 'Темы',
);
$args = array(
'hierarchical' => true, // как категории
'labels' => $labels,
'show_ui' => true,
'show_admin_column' => true,
'query_var' => true,
'rewrite' => array('slug' => 'topic'),
);
register_taxonomy('topic', array('post'), $args);
}
add_action('init', 'two_wp_register_taxonomy_topic');
В этом примере создаётся иерархическая таксономия «Темы», доступная для стандартных записей (post). В админке WordPress появится новый пункт для управления темами.
Использование кастомных таксономий в шаблонах
После регистрации таксономии можно выводить её термины в шаблонах. Например, чтобы вывести список тем для записи, используйте функцию get_the_terms():
$terms = get_the_terms(get_the_ID(), 'topic');
if ($terms && !is_wp_error($terms)) {
echo '<ul class="two-wp-topics">';
foreach ($terms as $term) {
echo '<li>' . esc_html($term->name) . '</li>';
}
echo '</ul>';
}
Так вы сможете вывести темы, к которым относится текущая запись. Это важно для улучшения UX и SEO.
Фильтрация и запросы с кастомными таксономиями
Чтобы получить записи по определённой таксономии или термину, используйте класс WP_Query с параметром tax_query. Например, получить последние 5 записей с темой «Новости»:
$query = new WP_Query(array(
'post_type' => 'post',
'posts_per_page' => 5,
'tax_query' => array(
array(
'taxonomy' => 'topic',
'field' => 'slug',
'terms' => 'novosti',
),
),
));
if ($query->have_posts()) {
while ($query->have_posts()) {
$query->the_post();
echo '<a href="' . get_permalink() . '">' . get_the_title() . '</a><br>';
}
wp_reset_postdata();
}
Это позволяет гибко создавать архивы и списки материалов по нужным критериям.
Плагины для работы с кастомными таксономиями
Если кодирование вручную кажется сложным, можно использовать плагины. Один из популярных — Custom Post Type UI. Он позволяет создавать таксономии через удобный интерфейс, не трогая код.
Также для управления выводом таксономий хорошо подходит плагин Clearfy Pro, который помогает оптимизировать и настроить структуру сайта.
Как удалить или изменить таксономию
Иногда нужно удалить зарегистрированную таксономию или изменить её параметры. Удалить таксономию в рантайме можно функцией unregister_taxonomy(), но она доступна только с WordPress 4.5 и выше.
function two_wp_unregister_topic_taxonomy() {
unregister_taxonomy('topic');
}
add_action('init', 'two_wp_unregister_topic_taxonomy', 20);
Для изменения параметров — лучше редактировать код регистрации или использовать фильтры, чтобы не допустить конфликтов с другими плагинами.
Преимущества использования кастомных таксономий
- Гибкая организация контента, удобная навигация для пользователей.
- Улучшение SEO за счёт создания тематических архивов.
- Разграничение контента по типам без необходимости создавать новые типы записей.
- Возможность использования в шаблонах и запросах для кастомного вывода.
- Совместимость с плагинами для расширения функционала.
Использование кастомных таксономий — обязательный инструмент в арсенале разработчика, работающего с крупными и сложными сайтами на WordPress.
Итоги и рекомендации
Для создания кастомных таксономий в WordPress рекомендуется использовать register_taxonomy() с подробным описанием меток и параметров. В шаблонах важно правильно выводить термины и использовать WP_Query для фильтрации контента. Если вы предпочитаете визуальные решения — обратите внимание на плагины Custom Post Type UI и Clearfy Pro.
Не забывайте тестировать таксономии на предмет совместимости с другими плагинами и темами, а также оптимизировать SEO-настройки для новых архивов.