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

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

Виктор Михайлов 31.03.25
Отвечает:
Руслан Шкарбан — автор статьи Руслан Шкарбан

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

Немного теории

Если вы оказались в этом материале, то скорее всего, вы знакомы с понятием таксономий, но всеже поясним. Таксономия в WordPress — это способ организации контента с помощью категорий или тегов. Она помогает группировать похожие записи, упрощая навигацию по сайту. Представьте библиотеку: таксономия — это система полок, а термины — отдельные полки, куда вы раскладываете записи, как книги. Это работает для любых типов записей, включая стандартные. Узнать больше подробностей можно в документации.

Одна таксономия может использоваться для объединения похожего контента. Например, на сайте о машинах можно создать записи «Обзоры авто» и «Автособытия». Их можно группировать по таксономии «Марка авто» (например, Skoda, Toyota, Tesla). В таком случае, это добавит удобства на сайт: всё про одну марку собрано вместе, и пользователи легко находят нужное, контент специалисту проще ориентироваться в админке и управлять категориями. Но это также может и усложнить работу с сайтом, приведем другой пример: на сайте о путешествиях есть записи «Туры» (путешествия) и «Статьи». Оба сортируются по таксономии «Направление» (Европа, Азия, Африка). «Направление» важно для туров, а статьи могут быть и общими, например, о том, как выбрать отель, без привязки к региону. В таком случае, это собьет с толку, как пользователей, так и редакторов сайта.

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

Заводим одну таксономию для нескольких типов записей

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

Особых секретов в процессе нет, мы используем стандартную функцию

add_action
для регистрации таксономии, но указываем массив сущностей, для которых нужно добавить.

    
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, свяжитесь с нами и мы поможем.
Подробнее об услуге
Есть вопрос из области дизайна, маркетинга или разработки? Отправьте его на почту и мы развернуто ответим на него на нашем сайте!

Остались вопросы? Готовы на них ответить!

Если у вас есть вопрос по маркетингу, разработке или дизайну, отправьте его через форму — мы подробно ответим на нашем сайте!

Нажимая на кнопку «Оставить вопрос», вы подтверждаете свое согласие на обработку пользовательских данных