Налаштування довільного типу для портфоліо – урок 25
Для створення сторінки портфоліо нам буде потрібний новий тип даних, якщо ви ще не знаєте, що це таке, я трохи розповім вам. Спочатку після встановлення WordPress має кілька довільних типів (Записи, Сторінок, Медіафайл), ми з вами спробуємо створити новий тип даних портфоліо і додати категорії, такі ж як у стандартних записах. Взагалі хочу сказати, що якщо є можливість зробити щось за допомогою API CMS, то краще використати цю можливість.
У нашій темі у папці функції додайте файл custom-type.php у ньому ми зберігатимемо нові типи файлів і таксономії. Щоб новий файл працював необхідно у файл functions.php вставити підключення створеного файлу як показано на малюнку нижче.
Після створення та підключення файлу, створимо сам тип даних. Для створення типу даних необхідно використати функцію register_post_type(), про неї можна докладно почитати на офіційному сайті, в кодексі wordpress. Я розповім про свій код, який ми будемо використовувати.
До речі для розробки типу даних можна використовувати хороший генератор типів даних, але це не означає, що цей генератор буде працювати вічно і вам не потрібно знати як працює функція register_post_type().
Про генератор типів даних я думаю ще напишу, а може і створимо свій, а зараз розповім як усе працює на прикладі мого коду.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 |
// Register Custom Post Type function my_works() { $labels = array( 'name' => _x( 'works', 'Post Type General Name', 'my_works' ), 'singular_name' => _x( 'work', 'Post Type Singular Name', 'my_works' ), 'menu_name' => __( 'portfolio', 'my_works' ), 'parent_item_colon' => __( 'Parent work:', 'my_works' ), 'all_items' => __( 'All works', 'my_works' ), 'view_item' => __( 'View work', 'my_works' ), 'add_new_item' => __( 'Add New work', 'my_works' ), 'add_new' => __( 'Add New', 'my_works' ), 'edit_item' => __( 'Edit work', 'my_works' ), 'search_items' => __( 'Search work', 'my_works' ), 'not_found' => __( 'Not found', 'my_works' ), 'not_found_in_trash' => __( 'Not found in Trash', 'my_works' ), ); $rewrite = array( 'slug' => 'my-portfolio', 'with_front' => true, 'pages' => true, 'feeds' => true, ); $args = array( 'label' => __( 'my_works', 'my_works' ), 'description' => __( 'Works for site', 'my_works' ), 'labels' => $labels, 'supports' => array( 'title', 'editor', 'excerpt', 'author', 'thumbnail', 'comments', 'custom-fields', ), 'hierarchical' => false, 'public' => true, 'show_ui' => true, 'show_in_menu' => true, 'show_in_admin_bar' => true, 'menu_position' => 5, 'menu_icon' => 'https://wp-admin.com.ua/wp-content/themes/rainbow/favicon.ico', 'can_export' => true, 'has_archive' => true, 'exclude_from_search' => false, 'publicly_queryable' => true, 'query_var' => 'my_portfolio', 'rewrite' => $rewrite, 'capability_type' => 'post', ); register_post_type( 'my_works', $args ); } // Hook into the 'init' action add_action( 'init', 'my_works', 0 ); |
Багато розповідати не буду, почну розписувати вам по порядку всі атрибути, що передаються в функцію.
Атрибути функції register_post_type()
name – загальна назва довільного типу даних, зазвичай пишуть у множині. Використовується для виведення назви в адмінці.
ім'я_однини – ім'я типу даних в одиночному числі.
назва_меню – ім'я нового типу в меню, у нашому випадку це портфоліо.
parent_item_colon – мітка для виведення батьківського запису, пишемо в одиночному числі.
всі_предмети – мітка для всіх записів. За промовчанням для всіх записів даного типу 'Parent work:'.
view_item – текст для перегляду запису даного типу View work.
add_new_item – напис на кнопку для додавання нового запису.
Додати новий – кнопка додати новий запис поряд із заголовком.
edit_item – заголовок для редагованого запису.
search_items – змінюємо напис на те, що нам необхідно.
не знайдено – напис за замовчуванням, якщо немає записів даного типу.
not_found_in_trash – напис у порожній кошик “Записів не знайдено”.
слимак – ярлик у засланні даного типу, важливо одразу продумати, як його назвати.
with_front – дозволяє відображати сильніше посилання. Якщо значення true то запис за посиланням відображатиметься так /news/, при false посилання виглядатиме так /blog/news/. Думаю правильно поки що ставити за умовчанням true.
pages – за умовчанням true, за промовчанням дозволено посторінкову навігацію для окремих записів. Якщо цей параметр встановлений у false, то ви не зможете скористатися коротким тегом (<!–Наступна сторінка–>) для вставки посторінкової навігації всередині запису.
корми – за допомогою вказівки цього параметра в (true), ми можемо визначити, чи буде цей тип даних відображатися у стрічці rss.
label – мітка типу даних у множині.
опис – короткий опис для типу даних.
підтримує – включення додаткового функціоналу, цей же функціонал можна увімкнути і після створення типу даних за допомогою функції add_post_type_support(). Розглянемо все, що можна включити за допомогою цієї функції.
• title – заголовок посту.
• редактор (content) – відображає поле введення для контенту сторінки.
• автор – вибір автора зі списку наявних користувачів.
• мініатюра (представлене зображення) – підтримка мініатюри запису.
• уривок – активація області короткого запису. Хто не в курсі, якщо ми вводимо цю область, то при виведенні архіву записів буде виводитись цей текст. Дуже корисно для SEO.
• спеціальні поля – включення метабоксу з довільними полями, про них ми ще говоритимемо.
• коментарі – перегляд списку коментарів до статті залишених іншими та можливість залишати самостійно в панелі адміністратора.
• атрибути сторінки – відображає атрибути сторінки, наприклад порядок записів. Використовується рідко, бачив використання всього раз в одному шаблоні, там це було дійсно необхідно.
• постформати – додає формати сторінки, при необхідності надалі я розповім про них.
ієрархічний – включає та відключає користувальницьку ієрархію. Поки що нам цей пункт не знадобиться.
громадськість – визначає видимість користувача типу запису в панелі адміністратора та в клієнтській частині.
позиція_меню – позначає позицію довільного типу на панелі адміністратора.
show_ui – приховує новий тип панелі адміністратора, як у меню, так і в адмінбарі. Працювати з типом можна тільки за коштами коду.
show_in_menu – приховує новий тип тільки в меню користувача.
show_in_admin_bar – вказуємо відображати чи не відображати довільний тип у меню.
У пункті 2 немає підменю для нового типу даних.
menu_icon – показує шлях до іконки для меню
can_export – можливість експортувати дані довільного типу даних.
has_archive – виводити дані у списку як архів (також як виводяться записи).
виключити_з_пошуку – виключити цей тип даних із пошуку.
publicly_queryable – можливість робити запити з користувальницької частини.
змінна_запиту – встановлює ключ до цього типу, використовується для запитів.
переписати – налаштування посилань до нового типу.
capability_type – беремо налаштування прав з іншого типу даних.
Урок трохи затягнувся, тому я вирішив розбити його на кілька уроків. Пройдіть курс WordPress, скоро будуть нові уроки.
/*
- Базовий курс з веб-дизайну;
- Верстка сайтів;
- Загальний курс CMS WordPress та продовження курсу з розробки шаблонів;
- Розробка сайтів на PHP.