Можно ли сделать одну таксономию для двух типов записи в WordPress?

У меня есть сайт на WordPress, посвящённый любительскому футболу. На сайте есть несколько сущностей: футбольные поля, команды, школы и магазины. Все эти сущности объединяет один признак — город. Это нужно для того, чтобы при переходе в раздел конкретного города (например, Санкт-Петербург) пользователь видел всё, что относится к нему. Логично создать одну таксономию «Город» для всех типов записей. Как это сделать?

Руслан Шкарбан 31.03.25
Автор:
Руслан Шкарбан — автор статьи Руслан Шкарбан

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

Возьмём данные из вопроса и рассмотрим их на примере. Город может быть связан с любой из сущностей: футбольным полем, магазином, школой или командой.

Для реализации такого функционала потребуется следующий код. В нём мы регистрируем таксономию для нескольких типов записей. Не будем подробно останавливаться на работе этого кода, так как регистрация таксономии является базовой функцией WordPress. Если вы не знакомы с ней, рекомендуем изучить документацию.

    
function register_city_taxonomy() {
    $labels = array(
        'name'              => _x('Город', 'taxonomy general name'),
        'singular_name'     => _x('Город', 'taxonomy 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'      => false, 
        'labels'            => $labels,
        'show_ui'           => true,
        'show_admin_column' => true,
        'query_var'         => true,
        'rewrite'           => array('slug' => 'city'),
    );
        
    register_taxonomy('city', array('venue', 'football-market', 'football-school', 'football-team'), $args); //передаем типы записей, у которых должна быть данная таксономия
	}
add_action('init', 'register_city_taxonomy');
        

Данный код необходимо добавить в файл functions.php вашей темы, указав нужные типы записей и параметры таксономии.

После сохранения изменений не забудьте обновить структуру постоянных ссылок в WordPress (Настройки → Постоянные ссылки → Сохранить изменения). Это необходимо для применения правок в файле .htaccess. Если всё сделано правильно, таксономия «Город» будет отображаться для указанных типов записей.

футбольные поля
футбольные школы
футбольные магазины
футбольные команды
Проблемы с сайтом? Мы уже в пути!

Проблемы с сайтом? Мы уже в пути!

Занимаемся разработкой и доработкой сайтов на WordPress, свяжитесь с нами и мы поможем.
Подробнее об услуге
Есть вопрос из области дизайна, маркетинга или разработки? Отправьте его на почту и мы развернуто ответим на него на нашем сайте!