Пользовательские типы записей WordPress — руководство для начинающих

Опубликовано: 2017-01-04

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

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

Пользовательские типы записей WordPress

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

  • Почта
  • Страница
  • Редакция
  • Вложение
  • Меню навигации

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

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

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

Тип поста может быть любым типом контента, который вам нужен для вашего сайта. Допустим, у нас есть веб-сайт подкастов, на котором нужно отображать эпизоды подкастов и время от времени публиковать отдельные сообщения в блогах. Теперь, если мы смешаем весь наш контент (подкасты и сообщения в блогах) в одном месте, наш раздел контента очень быстро станет действительно беспорядочным. Вот почему для наших случайных сообщений в блоге мы будем использовать тип сообщения по умолчанию «сообщение» в WordPress, что позволяет нам использовать таксономии по умолчанию: категории и теги.

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

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

Есть 2 способа создать пользовательский тип записи в WordPress: вручную (довольно просто, но требует некоторого знакомства с программированием) и с помощью плагина (гораздо более простой метод, но требует, чтобы плагин был установлен). Какой из них выбрать? Наличие большого количества плагинов может вызвать у вас головную боль из-за несовместимости, проблем с производительностью и плохого кода. Если у вас уже установлено множество плагинов, вы можете захотеть испачкать руки в этот раз. Мы рассмотрим оба метода, а вы решите, какой из них подходит вам лучше всего.

Использование плагина

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

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

Интерфейс этого плагина довольно интуитивно понятен и прост. Вы нажимаете «Добавить новый», а затем указываете имя типа записи, метку, метку в единственном числе и описание для пользовательского типа записи. Дело не в том, что 5 типов записей WordPress зарезервированы, и вы не можете использовать эти имена. Вот пример того, что вы должны ввести:

Название типа сообщения: Подкасты
Лейбл: Подкасты
Имя в единственном числе: Подкаст
Описание: Тип поста для подкастинга

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

Вручную

Чтобы создать пользовательский тип записи вручную, вам нужно изменить файл functions.php вашей темы. Используйте свой любимый FTP-клиент и войдите на сервер, на котором размещен ваш сайт. После подключения вам необходимо:
1. Перейдите к wp-content -> themes -> ваша тема
2. Откройте файл functions.php
3. Если вы используете дочернюю тему, а такого файла нет, создайте его.
4. Вставьте приведенный ниже код.

В нашем примере нам нужно создать пользовательский тип записи подкаст. Вот код для этого (из шага 4: следующий код входит в ваш файл functions.php):

 // Registering CPT function podcast_post_type() { //Setting up the user interface labels for podcasting CPT $labels = array( 'name' => _x( 'Podcasts', 'Post Type General Name' ), 'singular_name' => _x( 'Podcast', 'Post Type Singular Name' ), 'menu_name' => __( 'Podcasts' ), 'name_admin_bar' => __( 'Podcast' ), 'parent_item_colon' => __( 'Parent Podcast' ), 'all_items' => __( 'All Podcasts' ), 'add_new_item' => __( 'Post New Podcast' ), 'add_new' => __( 'New Podcast' ), 'new_item' => __( 'New Podcast' ), 'edit_item' => __( 'Edit Podcast' ), 'update_item' => __( 'Update Podcast' ), 'view_item' => __( 'View Podcast' ), 'search_items' => __( 'Search Podcasts' ), 'not_found' => __( 'No Podcasts found' ), 'not_found_in_trash' => __( 'No Podcasts found in trash' ) ); //Setting up other options for Podcasts CPT $args = array( 'label' => __( 'Podcasts' ), 'labels' => $labels, 'description' => __( 'Creating and managing podcasts' ), 'supports' => array( 'title', 'editor', 'excerpt', 'thumbnail', 'comments', 'revisions', 'custom-fields' ), //Initially supported features 'taxonomies' => array( 'podcast-category'), //If custom taxonomies exist, insert their names in the array 'hierarchical' => false, 'public' => true, 'show_ui' => true, 'show_in_menu' => true, 'menu_position' => 5, 'show_in_admin_bar' => true, 'show_in_nav_menus' => true, 'can_export' => true, 'has_archive' => true, 'exclude_from_search' => false, 'publicly_queryable' => true, ); //Registering custom post type register_post_type( 'podcasts', $args ); } // Hook into init action add_action( 'init', 'podcasts_post_type', 0 );

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

  • Массив $labels сообщает WordPress, как отображать тип записи в панели администратора.
  • Массив $args загружает всю конфигурацию из массива $labels и указывает параметры для пользовательского типа записи.
  • Магия происходит, когда функция register_post_type('podcasts', $args) вызывается внутри основной функции podcasts_post_type() с двумя аргументами: именем пользовательского типа записи и параметрами, хранящимися в $args (который является ассоциативным массивом). Затем мы просто подключаем функцию podcasts_post_type() для инициализации и позволяем WordPress загрузить ее.

Когда вы нажмете «Сохранить» и загрузите измененный файл functions.php в папку вашей темы, вы должны увидеть подкасты (просто ниже постов, потому что мы установили для menu_position в $args значение 5) на панели администратора WordPress. Если вы наведете на него курсор, вы должны увидеть такие действия, как «Все подкасты» и «Добавить новый подкаст» — точно так же, как мы указали в массиве $labels. Поскольку мы не вставляли никаких настраиваемых полей, при попытке добавить новый подкаст все будет так же, как если бы вы добавляли обычный пост.

Если вы заметили, в массив $args мы добавили «подкасты» в качестве таксономии. Мы еще не создали эту таксономию, но в конечном итоге она будет содержать наши пользовательские категории, такие как категории подкастов, шоу подкастов и т. д.

Когда дело доходит до пользовательских типов записей WordPress, это действительно все, что вам нужно сейчас. Теперь возникает вопрос, как отображать контент из CPT, как создавать таксономии (в нашем случае таксономию подкастов) и как создавать настраиваемые поля? Не волнуйтесь, мы рассмотрим все это шаг за шагом!