wpmake.ru wordpress WPMake

Как создать и использовать Custom Taxonomy в WordPress

Что такое Custom Taxonomy и зачем она нужна в WordPress

WordPress по умолчанию предоставляет две основных таксономии: категории и метки. Однако часто возникает необходимость структурировать контент более гибко, особенно если стандартных способов категоризации недостаточно. Для этого в WordPress предусмотрены Custom Taxonomy — пользовательские таксономии, которые позволяют создавать собственные группы для постов, страниц или любых типов записей (Custom Post Types).

Использование Custom Taxonomy помогает улучшить навигацию по сайту, повысить удобство работы с админкой и улучшить SEO за счет более точной организации контента. Например, если у вас сайт с отзывами на фильмы, вы можете создать таксономию «Жанр» и «Страна производства», чтобы фильтровать посты по этим параметрам.

Давайте разберемся, как создавать и использовать Custom Taxonomy на практике.

Создание Custom Taxonomy через код: пример для сайта на WordPress

Для создания пользовательской таксономии нужно добавить код в файл functions.php вашей темы или в отдельный плагин. Ниже пример создания таксономии «Жанр» для записей типа post.

function wpmake_register_genre_taxonomy() {
    $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' => 'genre'),
    );

    register_taxonomy('wpmake_genre', array('post'), $args);
}
add_action('init', 'wpmake_register_genre_taxonomy');

В этом примере мы создаем и регистрируем таксономию wpmake_genre, которая отобразится в админке и будет доступна для записей (post). Аргумент hierarchical определяет, будет ли таксономия иметь древовидную структуру, как категории, или плоскую, как метки.

Важно использовать уникальные префиксы (в данном случае wpmake_), чтобы избежать конфликтов с другими плагинами или темами.

Как использовать Custom Taxonomy в шаблонах темы WordPress

После создания таксономии полезно вывести ее значения на сайте. Например, вы хотите отобразить жанры, к которым относится пост, в шаблоне single.php.

Для этого используйте функцию get_the_term_list():

echo get_the_term_list(get_the_ID(), 'wpmake_genre', 'Жанры: ', ', ');

Эта функция выводит список терминов (жанров) для текущего поста, разделенных запятыми и с префиксом «Жанры:».

Если нужно вывести все термины таксономии с ссылками, применяется функция get_terms():

$genres = get_terms(array(
    'taxonomy' => 'wpmake_genre',
    'hide_empty' => false,
));
if (!empty($genres) && !is_wp_error($genres)) {
    echo '<ul>';
    foreach ($genres as $genre) {
        echo '<li><a href="' . esc_url(get_term_link($genre)) . '">' . esc_html($genre->name) . '</a></li>';
    }
    echo '</ul>';
}

Использование плагинов для создания Custom Taxonomy без кода

Если вы не хотите писать код, можно воспользоваться плагинами, которые позволяют создавать и управлять пользовательскими таксономиями через интерфейс WordPress:

  • Custom Post Type UI — популярный и удобный плагин, позволяющий создавать как типы записей, так и таксономии с гибкими настройками.
  • Pods — мощный инструмент для создания и управления типами записей, таксономиями и пользовательскими полями.
  • Toolset Types — расширенный плагин для более сложной настройки структуры сайта без программирования.

Использование плагинов удобно для быстрого старта и минимизации ошибок, но при этом рекомендуется после создания таксономии экспортировать настройки в код для лучшей производительности и контроля.

Фильтрация и запросы с Custom Taxonomy в WordPress

Custom Taxonomy можно использовать для фильтрации записей в запросах WP_Query — это полезно для создания страниц с отфильтрованным контентом.

Пример запроса, который выводит посты с жанром «драма»:

$query = new WP_Query(array(
    'post_type' => 'post',
    'tax_query' => array(
        array(
            'taxonomy' => 'wpmake_genre',
            'field'    => 'slug',
            'terms'    => 'drama',
        ),
    ),
));

if ($query->have_posts()) {
    while ($query->have_posts()) {
        $query->the_post();
        the_title('<h3>', '</h3>');
        the_excerpt();
    }
    wp_reset_postdata();
} else {
    echo 'Посты не найдены';
}

Такой подход позволяет создавать сложные фильтры и страницы архивов с нужным содержимым.

Советы по использованию Custom Taxonomy для улучшения структуры сайта

При разработке пользовательских таксономий стоит придерживаться нескольких рекомендаций:

  • Используйте осмысленные и понятные названия терминов и таксономий.
  • Определяйте, нужна ли иерархия (дерево) в таксономии, чтобы избежать излишней сложности.
  • Добавляйте поддержку таксономии только для тех типов записей, где это действительно нужно.
  • Обязательно добавляйте префиксы к названиям функций и таксономий, чтобы избежать конфликтов.
  • Тестируйте отображение на фронтенде и в админке, чтобы убедиться, что интерфейс удобен.

Использование Custom Taxonomy повышает качество и удобство управления контентом в WordPress, делает сайт более структурированным и гибким для пользователей и поисковиков.

×
Сделай свой сайт крутым!

Скидка -20% на премиум плагины WordPress

Выбрать плагин сейчас ⋙