Как добавить категории в произвольный тип записи в WordPress

/

Вы ищете способ легко добавлять категории к произвольному типу сообщений?

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

В этой статье мы покажем вам, как добавлять категории к произвольному типу записей в WordPress.

Добавление категорий в пользовательские типы записей в WordPress

Когда вам может потребоваться добавить категории к произвольному типу сообщения?

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

Например, если вы публикуете обзоры фильмов, вы можете создать собственный тип публикации для «Фильмы».

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

Однако что, если вы хотите использовать те же категории, что и для сообщений в блоге, с типом сообщений «Фильмы»?

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

При этом давайте посмотрим, как легко добавлять категории к произвольному типу записи в WordPress.

Добавление категорий в настраиваемый тип сообщения с помощью плагина

Если вы новичок, мы рекомендуем использовать плагин пользовательского интерфейса Custom Post Type для создания пользовательских типов сообщений.

С помощью плагина пользовательского интерфейса Custom Post Type у вас есть возможность связать свой пользовательский тип сообщения с любой встроенной или настраиваемой таксономией, включая категории.

Во-первых, вам необходимо установить и активировать плагин пользовательского интерфейса Custom Post Type. Для получения дополнительной информации см. Наше пошаговое руководство по установке плагина WordPress.

После установки вам необходимо посетить CPT UI »Добавить / изменить типы сообщений, чтобы создать новый настраиваемый тип сообщения или отредактировать существующий настраиваемый тип сообщения, созданный с помощью плагина.

Редактирование типов сообщений с помощью плагина CPT UI

Прокрутите вниз, где находятся параметры настроек. Оттуда вы увидите область Taxnomies.

Вам нужно установить флажок рядом с категориями и сохранить свой собственный тип сообщения.

Включите категории для настраиваемого типа записи в WordPress

Не забудьте нажать кнопку «Сохранить тип сообщения», чтобы сохранить настройки.

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

Категория добавлена ​​в произвольный тип сообщения

Добавление категорий в произвольный тип сообщения вручную

Если вы создали свой собственный тип сообщения, добавив код в файл functions.php своей темы или в плагин для конкретного сайта, вам придется изменить код, чтобы добавить категорию в качестве поддерживаемой таксономии.

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

<?php
'taxonomies'  => array( 'category' ),

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

<?php
'taxonomies'          => array('topics', 'category' ),

Вот полный пример кода, в котором мы создали настраиваемый тип публикации под названием «Фильмы» с поддержкой встроенных категорий.

<?php
function custom_post_type() {

    // Set UI labels for Custom Post Type
    $labels = array(
        'name'                => _x( 'Movies', 'Post Type General Name', 'twentythirteen' ),
        'singular_name'       => _x( 'Movie', 'Post Type Singular Name', 'twentythirteen' ),
        'menu_name'           => __( 'Movies', 'twentythirteen' ),
        'parent_item_colon'   => __( 'Parent Movie', 'twentythirteen' ),
        'all_items'           => __( 'All Movies', 'twentythirteen' ),
        'view_item'           => __( 'View Movie', 'twentythirteen' ),
        'add_new_item'        => __( 'Add New Movie', 'twentythirteen' ),
        'add_new'             => __( 'Add New', 'twentythirteen' ),
        'edit_item'           => __( 'Edit Movie', 'twentythirteen' ),
        'update_item'         => __( 'Update Movie', 'twentythirteen' ),
        'search_items'        => __( 'Search Movie', 'twentythirteen' ),
        'not_found'           => __( 'Not Found', 'twentythirteen' ),
        'not_found_in_trash'  => __( 'Not found in Trash', 'twentythirteen' ),
    );

    // Set other options for Custom Post Type
    $args = array(
        'label'               => __( 'movies', 'twentythirteen' ),
        'description'         => __( 'Movie news and reviews', 'twentythirteen' ),
        'labels'              => $labels,
        'supports'            => array( 'title', 'editor', 'excerpt', 'author', 'thumbnail', 'comments', 'revisions', 'custom-fields', ),
        'hierarchical'        => false,
        'public'              => true,
        'show_ui'             => true,
        'show_in_menu'        => true,
        'show_in_nav_menus'   => true,
        'show_in_admin_bar'   => true,
        'menu_position'       => 5,
        'can_export'          => true,
        'has_archive'         => true,
        'exclude_from_search' => false,
        'publicly_queryable'  => true,
        'capability_type'     => 'page',
        'show_in_rest'        => true,

        // This is where we add taxonomies to our CPT
        'taxonomies'          => array( 'category' ),
    );

    // Registering your Custom Post Type
    register_post_type( 'movies', $args );
}

/* Hook into the 'init' action so that the function
* Containing our post type registration is not
* unnecessarily executed.
*/

add_action( 'init', 'custom_post_type', 0 );

Отображение нескольких типов сообщений на странице категории

По умолчанию страницы категорий на вашем сайте WordPress будут отображать только тип сообщений по умолчанию «Сообщения».

Отсутствует тип сообщения

Чтобы отображать настраиваемые типы сообщений на той же странице категории, что и сообщения по умолчанию, вам необходимо добавить этот код в файл functions.php вашей темы или в плагин для конкретного сайта.

<?php
add_filter('pre_get_posts', 'query_post_type');

function query_post_type($query) {
    if( is_category() ) {
        $post_type = get_query_var('post_type');
        if($post_type)
            $post_type = $post_type;
        else
            $post_type = array('nav_menu_item', 'post', 'movies'); // don't forget nav_menu_item to allow menus to work!
            $query->set('post_type',$post_type);
        return $query;
    }
}

Не забудьте заменить «фильмы» названием своего собственного типа публикации. Теперь вы можете посетить страницу архива категории, и на ней будут отображаться ваши записи из вашего пользовательского типа публикации.

Тип сообщения отображается на странице архива категорий

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

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

Нужна помощь с WordPress? Свяжитесь сейчас
[email protected]

Это переведенная версия оригинальной статьи от wpbeginner, весь контент, изображения и авторство принадлежит автору

Как создать онлайн-торговую площадку с помощью WordPress

Вы хотите создать онлайн-торговую площадку с помощью WordPress? WordPress позволяет легко создать онлайн-торговую площадку, такую ​​как Etsy, eBay или Amazon.

Как настроить онлайн-заказ еды для ресторанов в WordPress

Хотите настроить онлайн-заказ еды для своего ресторана? Будь то новое предприятие или вы много лет обслуживаете клиентов лично, доставка еды поможет

Как перенести WordPress с локального сервера на живой сайт (2 метода)

Один из способов ускорить разработку веб-сайта - создать веб-сайт локально на вашем собственном компьютере с помощью программного обеспечения,

Как добавить кнопку Skype Share в WordPress

Знаете ли вы, что в Skype есть кнопка «Поделиться»? Мы не делали этого до тех пор, пока один из читателей не попросил у нас руководство о том, как добавить