Начиная с версии 2.9 WordPress предоставил возможность использования произвольных типов записей. Теперь же с версии 3.0 всё стало еще приятнее с опцией создания панелей для ваших произвольных типов записей. В этой статье мы покажем вам как внедрить Произвольные Типы записей на ваш сайт на WordPress.
Создание произвольных типов записей — используем Плагин
На сегодняшний день в версии 3.0 WordPress нет встроенного интерфейса для создания произвольных типов записей. Есть только два способа, доступных для создания произвольных типов записей: плагины или хард-кодинг темы в файле functions.php. Сначала давайте рассмотрим реализацию задуманного с использованием плагинов.
Custom Post Type UI
Custom Post Type UI — это плагин, разработанный Brad Williams, который позволяет вам с легкостью создавать произвольные типы записей и таксономии. Одной из самых примечательных возможностей этого плагина является то, что он генерирует код для создания произвольных типов записей, которые в последующем можно вставить в файл functions.php темы, а из минусов то, что невозможно использовать таксономии для всех ваших типов записей.
В панели Custom Post Type UI кликните на “Add New”.
Далее вам необходимо проделать несколько настроек.
- “Post Type Name” — это то, что будет использоваться WordPress для запросов на все записи из этого post_type.
- “Label” — то, что будет отображаться в сайдбаре вашей Консоли, по типу стандартного меню «Записи».
- Если раскрыть “View Advanced Options”, то можно увидеть несколько дополнительных настроек. Большинство из них интуитивно понятны, например “Public” и “Show UI”. Первая при переключении ее в True позволит вывести меню произвольного типа записи в сайдбар, а вторая (Show UI) при значении True создает панель меню.
- “Rewrite” — то, что позволит произвольным типам записей использовать SEO Friendly WordPress URL (постоянные ссылки, ЧПУ).
- В “Custom Rewrite Slug” вы указываете все, что вам угодно. WordPress будет использовать указанный slug для генерации постоянных ссылок. Поэтому если у нас есть домен example.com и slug — “movies”, то ваша ссылка на произвольный тип записи будет выглядеть примерно так example.com/movies.
- Функция WordPress “Query Var” позволяет вам выполнять запросы к вашим новым типам записей. Если мы возьмем пример, приведенный выше, то чтобы получить доступ к записи с заголовком, My First Movie Post, который находится в post_type Movies, мы можем ввести example.com/?movies=my-first-movie-post. Посему переменная запроса выглядит так: ?posttypename
И, наконец, вы можете выбрать различные фичи, которые должны поддерживаться вашим произвольным типом записей, например миниатюры и цитаты.
Создание произвольных типов записей — используем файл Functions.php
Если вы предпочтете создавать произвольные типы записей без плагинов, то просто добавьте следующий код в файл functions.php вашей темы:
// Создаем тип записей Movies register_post_type('movies', array( 'label' => 'Movies', 'public' => true, 'show_ui' => true, 'capability_type' => 'post', 'hierarchical' => false, 'rewrite' => array('slug' => 'movies'), 'query_var' => true, 'supports' => array( 'title', 'editor', 'excerpt', 'trackbacks', 'custom-fields', 'comments', 'revisions', 'thumbnail', 'author', 'page-attributes',) ) );
Давайте проанализируем код.
register_post_type( $post_type, $args ): Эта функция принимает два параметра, $post_type или название типа записи, и $args, массив параметров.
label: Имя, задаваемое типу записи, которое будет отображаться в сайдбаре административной панели сайта.
show_ui: true/false. Отображает или скрывает дефолтный интерфейс для управления этим типом записей.
capability_type: По-умолчанию: post. Тип записи для проверки возможностей чтения, редактирования и удаления.
hierarchical: Является ли запись иерархической.
rewrite: true/false. По-умолчанию: true . Если параметр slug указан, то имя slug добавляется перед записью.
query_var: true/false Устанавливает переменную для запроса к произвольному типу записи.
supports: По-умолчанию: title и author . Устанавливает различные фичи, которые будут поддерживаться типом записи.
Посетите WordPress Codex для более подробной информации по register_post_type().
выводим произвольные типы записей
Для вывода записей из вашего произвольного типа необходимо добавить следующий код в цикл. Измените “name” на имя вашего типа записей. Примечание: вам не нужно добавлять ваши произвольные типы записей в ваш файл index.php. Можно создать пользовательскую страницу в WordPress и там выполнить следующий запрос внутри цикла.
$query = new WP_Query( 'post_type=name' );
Для вывода записей более чем из одного типа записей, измените следующий код на код ниже. Измените movies на имя вашего произвольного типа.
$query = new WP_Query( array( 'post_type' => array( 'post', 'movies' ) ) );
Код выше выведет все стандартные записи блога и из произвольного типа movies.
Вот и все. Надеемся, что статья окажется вам полезной.
По всем вопросам и отзывам просьба писать в комментарии ниже.
Не забывайте, по возможности, оценивать понравившиеся записи количеством звездочек на ваше усмотрение.