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

/

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

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

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

Создание пользовательских типов записей в WordPress

Что такое пользовательский тип сообщения в WordPress?

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

По умолчанию WordPress поставляется со следующими типами записей:

  • Сообщение
  • Страница
  • Вложение
  • Редакция
  • Навигационное меню

Вы можете создавать свои собственные типы сообщений и называть их как хотите.

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

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

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

  • WooCommerce - добавляет пользовательский тип публикации продукта на ваш сайт WordPress.
  • WPForms - создает тип сообщения wpforms для хранения всех ваших форм.
  • MemberPress - добавляет пользовательский тип сообщения memberpressproduct

Когда мне нужен собственный тип сообщения?

Ознакомьтесь с нашей статьей о том, когда вам действительно нужны пользовательские типы записей или таксономии в WordPress.

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

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

Метод 1. Создание произвольного типа сообщения - простой способ

Самый простой способ создать собственный тип записи в WordPress - использовать плагин. Этот метод рекомендуется новичкам, потому что он безопасен и очень прост.

Первое, что вам нужно сделать, это установить и активировать плагин пользовательского интерфейса Custom Post Type. После активации плагин добавит новый пункт в меню администратора WordPress под названием CPT UI.

Теперь перейдите в CPT UI »Добавить новый, чтобы создать новый пользовательский тип сообщения.

Добавить новый пользовательский тип сообщения

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

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

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

Прокрутите вниз до раздела «Дополнительные ярлыки», где вы можете предоставить описание своего типа сообщения и изменить ярлыки.

Ярлыки типа сообщения

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

Далее идет опция настройки типа сообщения. Отсюда вы можете настроить различные атрибуты для своего типа сообщения. Каждая опция поставляется с кратким описанием, объясняющим, что она делает.

Настройки типа сообщения

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

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

Поддерживаемые варианты

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

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

Позже в этой статье мы покажем вам, как отображать пользовательский тип публикации на вашем веб-сайте.

Создание настраиваемого типа сообщения вручную

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

Если вы работаете на клиентском сайте и не хотите устанавливать другой плагин, вы можете вручную создать свой собственный тип публикации, добавив требуемый код в файл functions.php вашей темы или в плагин для конкретного сайта (см. Custom Post Типы Дебаты functions.php или Plugin).

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

<?php
// Our custom post type function
function create_posttype() {

    register_post_type( 'movies',
    // CPT Options
        array(
            'labels' => array(
                'name' => __( 'Movies' ),
                'singular_name' => __( 'Movie' )
            ),
            'public' => true,
            'has_archive' => true,
            'rewrite' => array('slug' => 'movies'),
            'show_in_rest' => true,

        )
    );
}
// Hooking up our function to theme setup
add_action( 'init', 'create_posttype' );

Что делает этот код, так это то, что он регистрирует тип сообщения "фильмы" с массивом аргументов. Эти аргументы являются параметрами нашего настраиваемого типа сообщения.

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

Теперь давайте рассмотрим подробный фрагмент кода, который добавляет дополнительные параметры к вашему пользовательскому типу сообщения.

<?php
/*
* Creating a function to create our CPT
*/

function custom_post_type() {

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

// Set other options for Custom Post Type

    $args = array(
        'label'               => __( 'movies', 'twentytwenty' ),
        'description'         => __( 'Movie news and reviews', 'twentytwenty' ),
        'labels'              => $labels,
        // Features this CPT supports in Post Editor
        'supports'            => array( 'title', 'editor', 'excerpt', 'author', 'thumbnail', 'comments', 'revisions', 'custom-fields', ),
        // You can associate this CPT with a taxonomy or custom taxonomy.
        'taxonomies'          => array( 'genres' ),
        /* A hierarchical CPT is like Pages and can have
        * Parent and child items. A non-hierarchical CPT
        * is like Posts.
        */ 
        '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'     => 'post',
        'show_in_rest' => true,

    );

    // 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 );

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

Мы также связали этот настраиваемый тип сообщения с настраиваемой таксономией под названием жанры.

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

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

Вы можете найти текстовый домен вашей темы в файле style.css в каталоге вашей темы. Текстовый домен будет указан в заголовке файла.

Отображение пользовательских типов сообщений на вашем сайте

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

Вы можете использовать несколько методов, каждый из которых имеет свои преимущества.

Отображение настраиваемого типа сообщения с использованием шаблона архива по умолчанию

Во-первых, вы можете просто перейти в Внешний вид »Меню и добавить настраиваемую ссылку в свое меню. Эта настраиваемая ссылка является ссылкой на ваш настраиваемый тип сообщения.

Добавьте тип сообщения в меню навигации

Если вы используете постоянные ссылки, оптимизированные для SEO, то URL вашего CPT, скорее всего, будет примерно таким:

http://example.com/movies

Если вы не используете постоянные ссылки, оптимизированные для SEO, тогда URL-адрес вашего настраиваемого типа публикации будет примерно таким:

http://example.com/?post_type=movies

Не забудьте заменить example.com своим собственным доменным именем, а фильмы - своим собственным именем типа публикации.

Сохраните свое меню, а затем посетите интерфейс вашего веб-сайта. Вы увидите новое меню, которое вы добавили, и когда вы нажмете на него, оно отобразит страницу архива вашего пользовательского типа сообщений с использованием файла шаблона archive.php в вашей теме.

Использование пользовательских шаблонов для архивов CPT и отдельных записей

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

Для этого все, что вам нужно сделать, это создать новый файл в каталоге вашей темы и назвать его archive-movies.php. Замените фильмы названием вашего произвольного типа сообщения.

Для начала вы можете скопировать содержимое файла archive.php вашей темы в шаблон archive-movies.php, а затем начать изменять его в соответствии со своими потребностями.

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

Точно так же вы также можете создать собственный шаблон для отображения отдельных записей вашего типа. Для этого вам необходимо создать файл single-movies.php в каталоге вашей темы. Не забудьте заменить фильмы названием вашего собственного типа сообщения.

Вы можете начать работу с копирования содержимого шаблона single.php вашей темы в шаблон single-movies.php, а затем начать изменять его в соответствии со своими потребностями.

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

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

<?php
add_action( 'pre_get_posts', 'add_my_post_types_to_query' );

function add_my_post_types_to_query( $query ) {
    if ( is_home() && $query->is_main_query() )
        $query->set( 'post_type', array( 'post', 'movies' ) );
    return $query;
}

Не забудьте заменить фильмы на свой собственный тип сообщения.

Запрос пользовательских типов сообщений

Если вы знакомы с программированием и хотели бы запускать циклические запросы в своих шаблонах, то вот как это сделать (Связано: что такое цикл?).

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

<?php
$args = array( 'post_type' => 'movies', 'posts_per_page' => 10 );
$the_query = new WP_Query( $args );
?>
<?php if ( $the_query->have_posts() ) : ?>
<?php while ( $the_query->have_posts() ) : $the_query->the_post(); ?>
<h2><?php the_title(); ?></h2>
<div class="entry-content">
<?php the_content(); ?>
</div>
<?php endwhile;
wp_reset_postdata(); ?>
<?php else:  ?>
<p><?php _e( 'Sorry, no posts matched your criteria.' ); ?></p>
<?php endif; ?>

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

После этого мы выполнили наш запрос, получили сообщения и отобразили их внутри цикла.

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

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

Что, если вы хотите отобразить последние записи из недавно созданного типа сообщения в виджете? Есть простой способ сделать это.

Первое, что вам нужно сделать, это установить и активировать плагин Ultimate Posts Widget. После активации просто перейдите в Внешний вид »Виджеты и перетащите виджет Ultimate Posts на боковую панель.

Виджет Ultimate Post

Этот мощный виджет позволит вам отображать последние сообщения из любых типов сообщений. Вы также можете отображать отрывки из сообщений со ссылкой «Читать дальше» или даже отображать избранное изображение рядом с заголовком сообщения.

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

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

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

Дополнительные советы см. В нашем списке самых полезных руководств по пользовательским типам записей WordPress.

Если вы ищете решение без кода для настройки страниц архива произвольного типа, то мы рекомендуем взглянуть на плагин для создания страниц WordPress, такой как Beaver Builder или Divi, потому что они оба могут помочь вам в этом.

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

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

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

Как установить, получить и удалить файлы cookie WordPress (как профессионал)

Вы хотите узнать, как использовать файлы cookie на своем сайте WordPress? Файлы cookie - это полезный инструмент для хранения временной информации в браузере

Как настроить журналы ошибок WordPress в WP-Config

Вы хотите настроить журналы ошибок WordPress в файле wp-config? Файл wp-config в WordPress не только управляет настройками вашего сайта WordPress, но и является очень

14 важных советов по защите админки WordPress (обновлено)

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

Как отображать описания категорий в WordPress

Вы хотите отображать описания категорий на своем сайте WordPress? Категории позволяют легко сортировать контент на вашем сайте. Они также помогают