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

Ромчик
0

Доброго времени суток. Вы знаете, что в WordPress есть несколько типов записей: post, page и др. Но иногда возникает ситуация, когда нам необходимо добавить свой тип записи или изменить стандартный. Дальше мы рассмотрим как это сделать, используя  стандартную функцию WordPress register_post_type().

И так, нам понадобилось создать новый тип записи, например, новость. Нет ничего проще.

Функция register_post_type

Открываем файл functions.php нашей темы и вставляем туда следующий код:

</pre>
add_action('init', 'my_post_type');

function my_post_type(){

register_post_type('news', array(

'labels'             => array(

'name'               => 'News',

'singular_name'      => 'News',

'menu_name'          => 'News'

),

'public'             => true,

));

}
<pre>

 

Вот и все.

Параметры register_post_type

Функция register_post_type($post_type, $arg) принимает всего два параметра:

  • $post_type – (string) название типа записи.
  • $arg – (array) массив аргументов

На post_type накладываются некоторые ограничения. Мы не можем использовать в названии нового типа записи:

  • post
  • page
  • attachment
  • revision
  • nav_menu_item
  • custom_css
  • customize_changeset
  • action
  • author
  • order
  • theme

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

Первый параметр labels принимает массив значений:

  • name – имя нового типа
  • singular_name – название единственного числа нового типа
  • add_new – название для добавления, например, «Добавить новость»
  • add_new_item – заголовок для вновь создаваемой записи
  • edit_item – заголовок для редактирования записи
  • new_item – текст новой записи
  • view_item – текст для просмотра записи
  • search_items – текст для поиска записи
  • not_found – текст, который будет отображен, если ничего не найдено при поиске
  • not_found_in_trash – текст для ничего не найдено в корзине
  • menu_name – текст для названия меню

Следующие параметры:

  • description – (string) в котором мы можем указать описание для записи.
  • public – (boolean) указываем является ли тип записи публичной или нет
  • show_in_admin_bar – (boolean) если true, то показываем в админ-баре
  • menu_position – (integer) указываем позицию меню для нового типа
    • 1 – в самом верху меню
    • 2-3 – под консолью
    • 4-9 – под записи
    • 10-14 – под медиафайлы
    • 15-19 – под ссылки
    • 20-24 – под страницы
    • 25-59 – под комментариями
    • 60-64 – под внешним видом
    • 65-69 – под «Плагины»
    • 70-74 – под «Пользователи»
    • 75-79 – под «Инструменты»
    • 80-89 – под «Параметры»
  • menu_icon – (string) указываем название иконки из пакета иконок Dashicons, также мы можем вставить свою иконку в base Как преобразовать изображение в строку вы можете прочитать в статье «Как преобразовать изображение в строку base64 jQuery?»
  • supports – (array) массив полей, которые будут использоваться в этом типе записи:
    • title – блок заголовка
    • editor – блок редактора для ввода контента
    • author – блок для выбора автора
    • thumbnail – блок для выбора миниатюры, должна быть включена поддержка миниатюр в теме. Как включить поддержку миниатюр в теме для WordPress вы можете прочитать у меня в блоге «Создание темы для WordPress. Поддержка миниатюр»
    • excerpt – блок ввода описания записи (цитаты)
    • trackbacks – блок уведомлений
    • custom-fields – блок установки кастомных полей. Что такое кастомные поля и как с ними работать вы можете прочитать в статье «Пользовательские поля WordPress» или для более удобной работы с пользовательскими полями использовать плагин «Плагин Advanced Custom Fields»
    • comments – блок комментариев
    • revisions – блок ревизий
    • page-attributes – блок атрибутов, как у страниц
    • post-formats – блок форматов записей
  • rewrite – (string/boolean) использовать ЧПУ или нет. Что такое ЧПУ и как его настроить в WordPress можно прочитать в статье «Настройка ЧПУ в WordPress». Если вы не хотите включать ЧПУ для данного типа записей, то укажите false.
    • slug – (string) префикс ЧПУ. Можно использовать плейсхолдеры типа %category%
    • with_front – (boolean) нужно ли в начало вставлять общий префикс
    • feeds – (boolean) добавить ли в ЧПУ RSS правила
    • pages – (boolean) добавить ли в ЧПУ правила пагинации

Ну, вот мы с вами рассмотрели основные параметры для создания нового типа записи. Более подробно прочитать о параметрах можно прочитать в официальной документации (https://codex.wordpress.org/Function_Reference/register_post_type ). Теперь давайте к нашему типу «Новости» применим некоторые параметры:

  • поместим наш тип в самом верху административной панели, для этого зададим параметр menu_position => 1
  • добавим иконку dashicons-format-aside, для этого зададим параметр menu_icon => dashicons-format-aside
  • добавим поддержку загловка, редактора контента, кастомных полей и миниатюры, для этого добавим параметр ‘supports’ => [‘title’, ‘editor’, ‘thumbnail’, ‘custom-fields’]

Добавим следующий код в файл functions.php нашей темы


add_action('init', 'my_post_type');

function my_post_type(){

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; register_post_type('news', array(

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 'labels'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =&gt; array(

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 'name'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =&gt; 'News',

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 'singular_name'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =&gt; 'News',

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 'menu_name'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =&gt; 'Новости',

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 'new_item' &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =&gt; 'Первая новость',

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; ),

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 'public'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =&gt; true,

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 'show_in_admin_bar' =&gt; true,

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 'menu_position' =&gt; 1,

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 'menu_icon' =&gt; 'dashicons-format-aside',

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 'supports' =&gt; [

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 'title', 'editor', 'thumbnail', 'custom-fields'

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ]

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ));

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }

 

И посмотрим, что получилось:

Заключение.

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

Понравилась статья? Поделись с друзьями.
  • Add to favorites
  • Добавить ВКонтакте заметку об этой странице
  • Twitter
  • Facebook
  • Мой Мир
  • LiveJournal
  • Одноклассники
  • Блог Я.ру
  • MySpace
  • FriendFeed
  • В закладки Google
  • Google Buzz
  • Яндекс.Закладки
  • Reddit
  • StumbleUpon
  • Technorati
  • del.icio.us
  • БобрДобр
  • LinkedIn
  • Memori.ru
  • Сто закладок
  • Blogger

©2012-2018 По всем вопросам обращайтесь через форму обратной связи

Яндекс.Метрика