Что такое таксономии в WordPress и зачем создавать свои
В WordPress таксономии — это способ группировки контента. По умолчанию доступны категории и метки, но часто их возможностей недостаточно для сложных проектов. Создание собственных таксономий позволяет структурировать контент более гибко и удобно, например, для интернет-магазина можно создать таксономию «Бренд» или «Тип продукта».
Пользовательские таксономии помогают не только улучшить навигацию для посетителей, но и повысить SEO, позволяя создавать уникальные архивы по новым признакам.
Рассмотрим, как программно добавить таксономию и использовать её в шаблонах.
Регистрация пользовательской таксономии: практический пример
Для создания таксономии нужно использовать функцию register_taxonomy. Лучшее место для этого — хук init. Ниже пример создания таксономии «Тип проекта» для постов:
function wpdirect_register_taxonomy_project_type() {
$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' => 'project-type'),
);
register_taxonomy('project_type', array('post'), $args);
}
add_action('init', 'wpdirect_register_taxonomy_project_type');Этот код создаст в админке раздел для управления типами проектов, и позволит присваивать их постам.
Отображение пользовательской таксономии в шаблонах WordPress
Чтобы вывести термины таксономии на странице записи, используйте функцию get_the_term_list. Например, добавим вывод типов проектов в single.php:
if ( $terms = get_the_term_list( get_the_ID(), 'project_type', '', ', ', '' ) ) {
echo '<div class="project-types"><strong>Типы проекта:</strong> ' . $terms . '</div>';
}Так вы получите ссылки на все типы, которыми помечен пост. Это улучшит UX и SEO, так как поисковики индексируют архивные страницы таксономий.
Создание кастомного шаблона архива таксономии
WordPress автоматически ищет файл taxonomy-{taxonomy}.php для отображения архивов таксономии. Для нашей таксономии создайте файл taxonomy-project_type.php в теме и добавьте туда кастомный вывод.
Пример простой структуры архива:
<?php get_header(); ?>
<h1>Архив типов проектов: <?php single_term_title(); ?></h1>
<?php if ( have_posts() ) : ?>
<ul>
<?php while ( have_posts() ) : the_post(); ?>
<li><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></li>
<?php endwhile; ?>
</ul>
<?php else : ?>
<p>Записей не найдено.</p>
<?php endif; ?>
<?php get_footer(); ?>Так вы сможете контролировать вывод и стилизацию страниц таксономии.
Использование пользовательских таксономий в запросах WP_Query
Для вывода постов с определённым термином таксономии используется параметр tax_query. Например, вывод всех постов с типом проекта «Разработка»:
$args = array(
'post_type' => 'post',
'tax_query' => array(
array(
'taxonomy' => 'project_type',
'field' => 'slug',
'terms' => 'razrabotka',
),
),
);
$query = new WP_Query($args);
if ($query->have_posts()) {
while ($query->have_posts()) {
$query->the_post();
echo '<a href="' . get_permalink() . '">' . get_the_title() . '</a><br>';
}
wp_reset_postdata();
} else {
echo 'Посты не найдены';
}Такой подход полезен для создания фильтров и кастомных листингов на сайте.
Советы по оптимизации и совместимости
1. Для SEO важно правильно настроить параметр rewrite в register_taxonomy, чтобы URL были человекочитаемыми.
2. При создании и выводе таксономий учитывайте возможность кэширования и оптимизации запросов, особенно если таксономий много.
3. Если нужна интеграция с популярными плагинами SEO или кэширования, проверьте их совместимость с пользовательскими таксономиями.
4. Для удобства редактирования и расширенных возможностей можно использовать плагин Clearfy Pro, который оптимизирует работу таксономий и добавляет полезные функции.
Заключение
Создание пользовательских таксономий — мощный инструмент для расширения возможностей WordPress и структурирования контента по вашим требованиям. Используйте приведённые примеры кода для быстрого старта и адаптируйте их под свои задачи.
Если хотите упростить работу с таксономиями и повысить производительность сайта, обратите внимание на Clearfy Pro — плагин с набором инструментов для оптимизации WordPress.