В WordPress часто возникает задача логично структурировать контент сайта, чтобы посетителям было удобно находить нужную информацию. Особенно это актуально, когда у вас много статей, товаров или других типов записей, и их нужно разделить на тематические блоки. В этой статье я подробно расскажу, как использовать пользовательские таксономии для разделения тематических блоков и приведу примеры реализации с кодом и полезными плагинами.
Что такое таксономии в WordPress и зачем они нужны
Таксономии — это способ группировки записей по общим признакам. В WordPress есть две встроенные таксономии — категории и метки, но часто их недостаточно для гибкой структуризации.
Пользовательские таксономии позволяют создавать свои категории, например, для разделения статей по типу, тематике, жанру, региону и другим параметрам, которые важны для вашего сайта.
Таксономии повышают удобство навигации и SEO, так как дают дополнительную структуру и создают новые страницы архива с тематическим контентом.
Как зарегистрировать пользовательскую таксономию: пример кода
Чтобы добавить новую таксономию, нужно использовать функцию register_taxonomy. Ниже пример, как в теме или плагине зарегистрировать таксономию wptips_topic для стандартного типа записей post:
function wptips_register_taxonomy_topic() {
$labels = array(
'name' => 'Темы',
'singular_name' => 'Тема',
'search_items' => 'Искать темы',
'all_items' => 'Все темы',
'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('wptips_topic', array('post'), $args);
}
add_action('init', 'wptips_register_taxonomy_topic');Обратите внимание, что hierarchical = true делает таксономию похожей на категории, то есть с древовидной структурой. Если нужен простой список, ставьте false (как метки).
Использование таксономий в шаблонах: вывод тематических блоков
После регистрации таксономии можно добавлять термины (темы) в админке и назначать их записям. Чтобы вывести записи определённой темы на сайте, используйте WP_Query с параметром таксономии.
Пример вывода записей темы wordpress:
$args = array(
'post_type' => 'post',
'tax_query' => array(
array(
'taxonomy' => 'wptips_topic',
'field' => 'slug',
'terms' => 'wordpress',
),
),
);
$query = new WP_Query($args);
if ($query->have_posts()) {
echo '<ul>';
while ($query->have_posts()) {
$query->the_post();
echo '<li><a href="' . get_permalink() . '">' . get_the_title() . '</a></li>';
}
echo '</ul>';
wp_reset_postdata();
} else {
echo 'Записи не найдены';
}Так вы можете создавать тематические блоки, например, для сайдбара, страницы категории или главной.
Плагины для работы с пользовательскими таксономиями
Если вы не хотите писать код, можно использовать плагины для создания и управления таксономиями:
- Custom Post Type UI — удобный интерфейс для регистрации таксономий и типов записей без кода;
- Toolset Types — мощный плагин с расширенными возможностями по созданию таксономий и полей;
- Pods — комплексное решение для кастомных типов и таксономий с возможностью вывода;
- Advanced Custom Fields (ACF) — не создает таксономии, но отлично работает с ними для добавления метаполей;
Например, Custom Post Type UI позволяет быстро зарегистрировать таксономию с помощью графического интерфейса, а затем выводить её с помощью стандартных функций WordPress.
Как интегрировать пользовательские таксономии с WP GPT для автоматизации контента
Если вы используете плагин WP GPT, можно автоматизировать создание терминов таксономий и даже тематических описаний для них.
Например, при добавлении новой темы в таксономию можно запускать генерацию описания с помощью GPT и сохранять его как описание термина. Это улучшит SEO и даст посетителям полезную информацию.
Пример автоматического добавления описания термина через WP GPT
function wptips_generate_taxonomy_term_description($term_id, $tt_id, $taxonomy) {
if ($taxonomy !== 'wptips_topic') return;
$term = get_term($term_id, $taxonomy);
if (!$term || !empty($term->description)) return; // не перезаписывать
// Здесь вызываем WP GPT API для генерации описания
$description = wptips_wp_gpt_generate_description('Опишите тему "' . $term->name . '" для сайта о WordPress');
if ($description) {
wp_update_term($term_id, $taxonomy, array('description' => $description));
}
}
add_action('created_term', 'wptips_generate_taxonomy_term_description', 10, 3);
// Заглушка функции генерации описания через WP GPT
function wptips_wp_gpt_generate_description($prompt) {
// Здесь ваш код обращения к API WP GPT
return 'Автоматически сгенерированное описание темы.';
}Этот подход позволяет поддерживать таксономии в актуальном и полезном состоянии без лишней ручной работы.
Частые ошибки и рекомендации при работе с таксономиями
При создании и использовании таксономий важно соблюдать несколько правил:
- Не используйте зарезервированные имена таксономий, чтобы избежать конфликтов с ядром и плагинами.
- Всегда регистрируйте таксономии через хук
init, чтобы они корректно работали во всех частях сайта. - Если изменяете слаг таксономии, не забудьте обновить постоянные ссылки (перейдите в Настройки > Постоянные ссылки и сохраните без изменений).
- Для отображения таксономий в шаблонах используйте функции
get_the_terms,wp_get_post_termsиWP_Queryс параметромtax_query. - Не забывайте очищать кэш после изменений таксономий, чтобы новые настройки отобразились корректно.
Соблюдение этих советов обеспечит стабильную и удобную работу с тематическими блоками на вашем сайте.
Итоги и полезные ссылки
Пользовательские таксономии — мощный инструмент для структурирования контента в WordPress. Они позволяют создавать тематические блоки, улучшать навигацию и SEO. Вы можете добавить их как с помощью кода, так и с помощью плагинов, например Custom Post Type UI. А интеграция с WP GPT поможет автоматизировать создание описаний и улучшить контент.
Экспериментируйте с таксономиями и делайте структуру сайта удобнее для пользователей и поисковых систем.