У версії 3.0 WordPress представив типи записів користувача та оновив користувальницькі таксономії, представлені ще у версії 2.8. Тепер користувачі та розробники WordPress можуть створювати власні типи записів і таксономії. Більше ніхто не прив'язаний до стандартних понять Запис, Сторінка і нудним Рубрикам и Міткам.
Так, використання своїх типів записів, таксономій та мета-блоків – це круто. Знаєте, що ще крутіше? Створювати все це одним рядком коду.
Дивіться також:
Створення власних типів записів та таксономій
Мені здалося складним і нудним створювати свої типи записів та таксономії за допомогою функцій register_post_type() и register_taxonomy(). І хоча вони дуже корисні, мені не подобається, що мені доводиться писати багато аргументів і передавати їх у функцію, яку мені також доведеться використовувати з функцією add_action ().
Навіть для розробника робити це з кожним типом запису та таксономією досить болісно, я навіть не можу уявити, як це для новеньких користувачів WordPress.
Не зрозумійте мене неправильно, вам все ще можна чи потрібно створювати їх за допомогою SuperCPT, але SuperCPT виключає принцип повторення та спрощує процес. На практиці вам потрібно буде просто призначити ім'я типу запису або таксономії, і SuperCPT зробить все інше.
І найкраще в цьому — вам не потрібно грати зі створенням своїх мета-блоків та мета-полів у них!
SuperCPT дозволяє створювати свої мета блоки з полями, які можуть бути простими HTML елементами з WYSIWYG редактора. Робити це за допомогою написання простих масивів — зараз найпростіший спосіб створення мета-блоків, який я бачив.
SuperCPT – рішення «Все в одному»
Я можу багато говорити про SuperCPT, але мені здається, що краще перейти до прикладів — відразу після того, як ми подивимося відмінне 5-хвилинне відео (англ. мова).
Встановлення
отримайте свою копію з бібліотеки плагінів WordPress.org, встановіть її і потім відкрийте файл functions.php вашої теми, щоб почати працювати з магією SuperCPT!
Відео
Створення своїх типів записів
Як ви могли бачити на відео, створювати свої типи записів так само просто, як написати рядок коду:
<?php // the regular method /* register_post_type( 'computer_part', array( 'labels' => array( 'name' => __( 'Computer Parts', 'my-locale' ), 'singular_name' => __( 'Computer Part', 'my-locale' ) ), 'public' => true, 'has_archive' => true, ) ); */ // the SuperCPT method $type_computer_part = new Super_Custom_Post_Type( 'computer-part' ); ?>
SuperCPT автоматично бере "computer-part" і видаляє невідповідні символи, а також робить всі символи слів великими. Він також бере різні форми "computer-part" і використовує їх для міток, наприклад, "Add New Computer Part"Або"Search Computer Parts" і т.д.
Звичайно, ви можете встановити будь-які позначки. Більше того, ви можете встановити значення всіх аргументів, які є у register_post_type()якщо вам захочеться. Перейдіть до розділу "Custom Post Types" SuperCPT Wiki, щоб знайти весь список аргументів та їх стандартні значення.
SuperCPT включає безкоштовний набір іконок під назвою Гліфікони для іконок типів записів. Це також просто, як набрати ще один рядок коду:
$type_computer_part->set_icon( 'display' );
Якщо ви не знаєте, як використовувати цей параметр, зверніть увагу на сторінку SuperCPT у розділі Інструменти панелі адміністратора — там ви побачите назви іконок.
Створення своїх таксономій
Створення своїх таксономій за допомогою SuperCPT дуже схоже створення своїх типів записів. Знов-таки, достатньо одного рядка коду:
<?php // the regular method /* register_taxonomy( 'manufacturers', 'computer-part', array( 'label' => __( 'Manufacturers', 'my-locale' ), 'rewrite' => array( 'slug' => 'manufacturer', 'my-locale' ) ) ); */ // the SuperCPT method $tax_manufacturer = new Super_Custom_Taxonomy( 'manufacturer' ); ?>
Як і з власними типами записів, аргументи для власної таксономії встановлюються автоматично, але можуть бути змінені. Більше про аргументи ви можете дізнатись з розділу "Custom Post Types" SuperCPT Wiki.
Як ви могли здогадатися, один рядок коду вище не може прив'язати вашу таксономію до типу запису. Вам потрібно зробити це за допомогою функції SuperCPT, так:
$tax_manufacturer->connect_post_types( 'computer-part' );
Створення власних мета-блоків
Моя улюблена частина! :)
Насправді найкраще SuperCPT — простота додавання власних мета-блоків записів. Вам не потрібно паритися з HTML-кодом. Але, звичайно, цього разу ми не обійдемося одним рядком коду.
Є дві основні функції: add_meta_box () и add_meta_boxes(). У цьому посібнику ми працюватимемо з першою. Параметри id и поля обов'язкові, але в Wiki є багато інших параметрів, які вас зацікавлять.
<?php $type_computer_part->add_meta_box( array( 'id' => 'our-review', // the title is converted from 'id', if there's no 'title' parameter 'fields' => array( 'score' => array( 'label' => __( 'Our Score', 'my-locale' ), 'type' => 'radio', 'options' => array( '1', '2', '3', '4', '5' ) ), 'release-date' => array( 'label' => __( 'Release Date', 'my-locale' ), 'type' => 'date' ), // yes, there is a date picker... 'short-comment' => array( 'label' => __( 'A Short Comment', 'my-locale' ), 'type' => 'textarea' ), 'review-text' => array( 'label' => __( 'Full Review', 'my-locale' ), 'type' => 'wysiwyg' ) // ...and there's a WYSIWYG text area! :) ) ) ); ?>
Є багато елементів, які ви можете розмістити у мета-блоках:
- Заховані поля
- Звичайні поля введення
- Звичайні області тексту
- Редактори WYSIWYG
- Чекбокси
- Радіобаттони
- Пункти вибору
- Вибір дат
- Нові поля HTML5: телефони, електронна пошта тощо.
Ми також можемо взяти дані з інших типів записів та заповнити поля чекбоксу, радіобаттону та селекту цими даними. У деяких випадках це може бути дуже корисним.
Функція обгортки (Wrapper)
І останнє: вам потрібна функція, щоб створити ці типи записів, які вам потрібно буде зачепити за дію - SuperCPT рекомендує зачіпку after_setup_theme. Але якщо ви збираєтеся написати плагін для створення власних типів записів та таксономій, краще використовувати зачіпку plugins_loaded, щоб дочекатися завантаження плагіна. Вам також потрібно переконатися, що клас Super_Custom_Post_Type Існує, перш ніж посилатися на нього.
Ось демо-функція з документації SuperCPT:
<?php function scpt_demo() { if ( ! class_exists( 'Super_Custom_Post_Type' ) ) return; // All your SuperCPT magic goes here! } add_action( 'after_setup_theme', 'scpt_demo' ); ?>
Висновок
Тепер ви знаєте все про найпростішого менеджера власних типів записів та таксономій. SuperCPT! Якщо вам потрібно більше інформації - зверніть увагу на повну документацію. Є багато функцій та фільтрів, які вам можуть сподобатися.
Що скажете щодо цього крутого WordPress плагіна? Розкажіть нам у коментарях і, якщо він вам сподобається, не забудьте поділитись цією статтею!
Коментарі до запису: 7
Добрий день. У мене є одне питання. У девізі вашого блогу написано "Про WordPress за чашкою кави". Дійсно, у вас чудові заголовки. І мені дуже багато з того, про що ви пишете, хочеться знати. Однак коли я читаю статтю, то мені майже все зовсім не зрозуміло. Наприклад, я не знаю, що таке свої типи записів, таксономія та мета блоки. І чим вони гарні. Я не знаю, як вони можуть виглядати і яка мені може бути користь від їх застосування. Якщо ваш блог для програмістів або супер сучасних знавців WordPress, тоді питання знімаю. Значить, не туди потрапив. Дайте відповідь, будь ласка, чи буде у ваших статтях писатися про конкретні можливості застосування того, про що ви пишете? Дякую.
Стаття пишеться для ознайомлення з новим функціоналом. Є статті для новачків, є статті для сучасних користувачів. Якщо ви не розумієте про що йдеться в пості, не розумієте, навіщо це вам потрібно — тоді в чому питання?)
Я починав із цього:
https://hostenko.com/wpcafe/uroki-wordpress/
Раджу так само, почніть навчатися і перестаньте наїдуться, що всі робитимуть все за вас.
Ок, відповідь зрозуміла. Дякую за посилання.
Зверніть увагу на блок «Дивіться також» на початку цієї статті. Перше ж посилання — і вам одразу стане зрозуміло, що таке «свої типи записів». Спеціально ж додали супутні уроки з цієї тематики, щоб новачкам було легше розібратися, а ви лінуєтеся, не тиснете на посилання… :)
Був неправий. Справді, є докладні та зрозумілі пояснення. переглянув. Соррі :)
А як зробити, щоб the_content не виводить записи які створені як у прикладі вікі в розділі Movie? І як виводити окремо записи із Movie?
згоден, не зрозуміло як створені пости виводити у візуальному режимі та як роздавати їм права доступу на редагування чи створення іншим користувачам