Как на WordPress-сайте добавить категории и метки для Страниц?

Категории (рубрики) и метки (теги) помогают сортировать контент на сайте и облегчают пользователям поиск того, что они ищут. При создании записи WordPress обе таксономии могут оказаться очень полезными для организации всего контента.

Рубрики и теги в WordPress

В WordPress, по умолчанию, рубрики и метки могут быть присвоены исключительно Записям (Постам). Для статических страниц вообще понятие категоризации не предусмотрено. Это объясняется тем, что последние обычно не нуждаются в какой-либо структуре. Так, на Страницах размещают статичные данные (о сайте, о предоставляемых им услугах и пр.), которые обычно не будут изменяться вообще.

Как добавить категории и метки для Страниц?

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

Способ 1. Плагин Post Tags and Categories for Pages

Плагин Post Tags and Categories for Pages добавляет для Страниц, как и в Записях, два вида таксономии: Рубрики и Теги. Особенностью дополнения является отсутствие каких-либо настроек для работы. Его достаточно установить и активировать. В итоге, если в админ-панели навести на пункт меню Страницы, то видим, что туда добавились еще два нужных нам пункта.

Админ-панель WordPress

Теперь, аналогично Записям, Вы, на странице редактирования Страницы, можете присваивать ей эти таксономии, создавая необходимую иерархию.

Способ 2. Добавление кода в файл functions.php

Если Вы по каким-либо причинам не желаете устанавливать на свой сайт дополнительный плагин, то можете воспользоваться этим способом. Второй способ добавления категорий и меток для Страниц предусматривает добавление специального PHP-кода в файл functions.php активной WordPress-темы на Вашем сайте.

Если Вы не знаете, как редактировать functions.php, то в этом случае Вам поможет плагин ProFunctions.

Итак, в самый конец указанного файла необходимо вставить следующие строки:

function wpschool_register_taxonomy() {
    register_taxonomy_for_object_type( 'post_tag', 'page' );
    register_taxonomy_for_object_type( 'category', 'page' );
}

function wpschool_display_taxonomy( $wp_query ) {
    // Добавление тегов
    if ( ( ( is_archive() || is_search() ) && $wp_query->get( 'tag' ) ) && ( ! $wp_query->get( 'post_type' ) ) ) {
    $wp_query->set( 'post_type', 'any' );
    } 
 
    // Добавление категорий
    if ( ( $wp_query->get( 'category_name' ) || $wp_query->get( 'cat' ) ) && ( ! $wp_query->get( 'post_type' ) ) ) {
    $wp_query->set( 'post_type', 'any' );
    }
}

add_action( 'pre_get_posts', 'wpschool_display_taxonomy' );
add_action( 'init', 'wpschool_register_taxonomy' );

Результат этого PHP-кода будет аналогичным работе вышеуказанного плагина.

Курс WordPress-разработчик
Если Вам понравилась статья — поделитесь с друзьями
Михаил Петров