WordPress Custom Post TypesЕсли в Google забить запрос “wordpress custom post types”, то поисковый гигант выдаст огромное количество статей и заметок о том как добавить в ВордПресс новый произвольный тип данных. Первая же ссылка ведет на WordPress Codex, которая содержит всеобъемлющее объяснение системы типов в ВордПрессе – https://codex.wordpress.org/Post_Types , и соответствующий подраздел https://codex.wordpress.org/Post_Types#Custom_Post_Types . Так почему же я решил описать этот?

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

WordPress Custom Post Types

Итак, зачем нужны произвольные типы записей?

По умолчания в ВордПресс уже есть несколько типов данных. Вот самые важные из них записи (posts), страницы (pages) и т.д. Записи – это регулярно добавляемые записи в блог или новостною ленту. Страницы – это постоянный контент (Страница контактов, страница обо мне и т.д). По крайней мере так задумывалось изначально. Ведь WordPress – это блоговая платформа.

Но мощное развитие в последнее время позволило ВордПресс перейди из разряда CMS для блога в разряд многофункциональной системе управления контентом.

Но ближе к делу…

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

Редактировать темы WordPressСоздадим тип записи Testimonials

Это простейший код из Кодекса, но проще начать с него. Мы добавляем его в файл functions.php, который находится в папке (директории) темы. Так же его можно отредактировать из админки


 

Добавлена функция create_testimonials_post_type() – она регистрирует тип записи и вызывается в перехватчике события WordPress init (через hook). Проще говоря функция add_action( ‘init’, ‘create_testimonials_post_type’ ) запускает  нашу функцию ‘create_testimonials_post_type’  после события init

В стандартную функцию ВордПресс create_post_type() передается 2 параметра –

  1. строка название (ключ), которая должна быть на латинице и не превышать 20 символов. Обязательный
  2. массив аргументов – различных настроек, которых довольно много, но об этом позже.  Не обязательный

Теперь в админке появлятся пункт Отзывы

2На скриншоте видно что переведены не только названия пунктов, но и многие другие надписи. За это отвечает массив labels, в который выше были передан название типа, и название в единственном числе. Давайте добавим остальные параметры.

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

Отображение Custom Post Types

Для примера добавить отзывы в футер сайта – файл footer.php в директории темы. Или можно как и functions.php редактировать из админки напрямую.

Комментарии в коде подсказывают что к чему.

На этом пока всё. На самом деле ВордПресс способен на гораздо большее. И помимо Custom Post Types есть еще и Custom Taxonomies – т.е. произвольные типы разделов. Также можно добавить различные типы полей к различным типам записей. Постараюсь об этом поговорить попозже.

…. и еще одно замечание.

Плагины для управления Custom Post Types

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

Вот несколько полезных ссылок

  • Custom Post Type UI – довольно популярный плагин для создания произвольных типов записей и категорий (taxonomies)
  • Отличная статья на SmashingMagazine
  • А вот генератор кода для Custom Post Type – позволяет быстро создать шаблон для вставки в functions.php с переводоми, со всеми параметрами.
WordPress – добавление произвольных типов записей
Метки: