Призначені для користувача пости wordpress повне керівництво

За ці роки я успішно створив велику кількість кастомних веб-додатків на новітніх версіях WordPress, в яких по повній використовувалися кастомниє типи постів. Прикладом може послужити сайт theme marketplace мого плагіна для WordPress ProfilePress.

Якщо докладніше придивитися до магазину тим за посиланням вище, можна помітити, що на ньому використовується кастомними система посторінковою навігації на основі URL посилань для наступної і попередньої сторінок. Тобто можна створити свою систему посторінковою навігації, яка відмінно буде працювати з запитами постів призначених для користувача типів.

Ну вистачить довгих промов, перейдемо до основної мети даного уроку - вивчення всіх тонкощів призначених для користувача типів в WordPress.

Сподіваюся, ми вирішимо багато проблем, з якими я особисто зіткнувся при роботі з кастомними типами посад, а також розглянемо інші круті можливості.

Визначення користувацького типу постів

Прикладом типу постів служить тип post (група постів з блогу), page (група сторінок), attachment (група завантажуються медіа файлів), а також revision (група редакцій постів). Всі ці типи рідні або вбудовані в WordPress. Знаючи, що таке тип поста, можна створити і зареєструвати новий тип, який буде ставитися до кастомними типам постів.

Якщо ви створюєте сайт для компанії або бізнесу на WordPress, то типами посад можуть бути Portfolio, Testimonials і Products. Тепер, коли ми розібралися з концепцією призначених для користувача типів постів, давайте навчимося їх створювати.

Як створити для користувача тип постів

Створити користувацький тип постів досить просто. Спершу, необхідно зареєструвати тип за допомогою функції register_post_type (), потім помістити його в функцію і прикріпити все це до екшену init:

У коді вище можна помітити, що другий параметр функції register_post_type () приймає масив з декількох обов'язкових аргументів, які потрібні для створення призначеного для користувача типу поста. Створений тип Portfolio можна подивитися в панелі адміністратора.

Призначені для користувача пости wordpress повне керівництво

Необхідно також сказати, що в функції register_post_type () другий аргумент необов'язковий. Призначений для користувача тип постів можна створити і по-іншому:

Множинне описову назву типу. Наприклад, якщо створити тип movie, то він повинен називатися Movies. За замовчуванням коштує $ post_type - перший параметр у функції register_post_type ().

Масив лейблів для типу постів. Кожна текстова рядок відображається на певній сторінці панелі адміністратора. Якщо плагін створюється для публічного користування, перевірте, щоб рядки були перекладними.

name: Множинна форма назви типу постів.

singular_name: Форма назв типів постів в однині.

add_new: Пункт меню для додавання нового поста.

add_new_item: При створенні нового посту відображається заголовок.

edit_item: Тема відображається при редагуванні посту.

new_item: Відображається в меню улюблених в шапці панелі адміністратора.

view_item: Відображається разом з посиланням на екрані редагування поста.

search_items: Текст кнопки панелі пошуку на екрані редагування поста.

not_found: Текст відображається, коли не знайдено жодного поста в пошуку через панель адміністратора.

not_found_in_trash: Текст відображається, коли в кошику немає постів.

Повний список лейблів і їх описів можна знайти за посиланням.

Description

Короткий опис типу поста. Я не знайшов, де в WordPress можна це задіяти.

Залежно від Булева значення воно автоматично вирішить, які повинні бути аргументи, якщо вони не задані. Якщо ви хочете контролювати публічні аргументи, можна задати три аргументи:

show_ui: задає, чи відображати екрани панелі адміністратора.

publicly_queryable: задає, чи можна виконати запити з цього типу постів з боку користувача.

exclude_from_search: чи повинні пости з'являтися в результатах пошуку.

menu_position

Як іконок для користувача типів постів можна використовувати dashicon. Скажімо, ви хочете використовувати іконку download dashicon, для цього надайте лейблу нижче значення dashicons-download:

Hierarchical

За допомогою цього аргументу можна задавати ієрархію для нових типів. За замовчуванням стоїть значення false. Якщо встановити true, нові типи стануть ієрархічними.

За допомогою цього аргументу можна задати масив мета боксів і полів, які будуть з'являтися на екрані під час редагування або створення нового поста. За замовчуванням варто title і editor. Якщо задати false, відключиться стандартну поведінку. Є кілька можливих опцій:

title: Поле введення тексту для створення заголовка поста.

thumbnail: вбудовані зображення.

excerpt: Область textarea для уривка поста.

trackbacks: включення і відключення трекбеків і пінгбеков.

custom-fields: кастомниє поля input.

post-formats: Додає формати постів

page-attributes: Атрибути сторінки. Важливий параметр для ієрархічних типів постів, можна вибрати батьківський пост.

register_meta_box_cb

Додає колбек функцію, яка викликається при установці мета боксів для форми редагування. Функція приймає один аргумент $ post, в якому зберігається об'єкт WP_Post поточного редагованого поста. Функція особливо корисна для розробників. З її допомогою можна створювати призначені для користувача мета бокси, які будуть відображатися на екрані редагування типу.

Taxonomies

Масив зареєстрованих таксономій, таких як category або post_tag, які будуть використовуватися з кастомними типом постів.

has_archive

Завжди при зміні URL в WordPress зберігайте зміни в панелі Налаштування >> посилання для повторного створення правил перезапису. Параметр slug відповідає за URL, а with_front задає буде структуру посилання. Все ще не зрозуміли для чого потрібен with_front? Розберемо приклад. Скажімо, структура вашого посилання точно така ж як на зображенні нижче з написом blog на кінці.

Призначені для користувача пости wordpress повне керівництво

can_export

За допомогою цього аргументу можна задати, чи можна експортувати пости кастомними типу через інструменти WordPress. За замовчуванням варто true.

За допомогою цього аргументу можна контролювати змінні запиту, які використовуються для отримання постів даного типу.
Якщо задано true, ви зможете запросити кастомний тип book за посиланням example.com/?book=harry-potter, де harry-potter це параметр slug посилання. Якщо задати рядок, а не true, можна написати так: example.com/?publication=harry-potter.

Нюанс з query_var

Якщо query_var не заданий в аргументі масиву реєстрації типу, за замовчуванням встановлюється значення $ post_type, тобто даний параметр заданий завжди, якщо його примусово не встановила в false.

І тут є один нюанс. Якщо значення query_var додати через рядок запиту в URL, завжди буде видаватися сторінка 404. Тут потрібно прояснити. Скажімо, значення query_var одно review, то URL вашого сайту можна вказати в будь-який з наступних форм:

Ці посилання приведуть вас на сторінці 404. Про це я дізнався з власного гіркого досвіду. Коли я зіткнувся з цією проблемою я створив тему на WordPress core trac і повідомив про помилку. У мене пішло кілька тижнів на те, щоб розібратися з цією проблемою перед тим, як мені відповіла команда WordPress.

Прискорюємо настройку користувальницьких типів постів за допомогою плагінів

Тепер, коли ми розібралися з основами, варто сказати про те, що існує маса плагінів для WordPress, за допомогою яких можна сильно спростити процес створення кастомних типів постів. Приклади (не всі):

Custom Post Type UI

Custom Post Type Maker

висновок

Редакція: Команда webformyself.

Найсвіжіші новини IT і веб-розробки на нашому Telegram-каналі

Призначені для користувача пости wordpress повне керівництво

Хочете швидко навчитися створювати сайти і блоги на WordPress з унікальним дизайном?

Отримайте найповнішу в Рунеті безкоштовну систему навчання створення сайтів на WordPress "Унікальний сайт з нуля"