Створення своїх типів даних. Плагин types для WordPress.
Як відомо в WordPress спочатку існує два основних типи це записи та сторінки.
Додавання типів даних без коду
Сьогодні я розповім, як додати нові типи даних, не лазячи у вихідний код CMS і зовсім без знання API WordPress.
Напевно, один з найкорисніших плагінів для WordPress це плагін Types розроблений командою розробників із сайту wp-types.com. Для початку можна зайти на сайт і завантажити плагін як у самих розробників, так і з офіційного репозиторію WordPress.
https://wordpress.org/extend/plugins/types/
Після скачування плагіна та встановлення активуємо його. Ліворуч у меню з'явиться новий пункт types
Для початку заходимо до пункту Types -> Індивідуальні типи та систематики і в ньому натискаємо кнопку Додати індивідуальний тип публікації далі заповнюємо форму. Спробуємо у WordPress зробити невелику інтернет вітрину для публікації товарів на сайт.
Після заповнення спускаємося нижче та налаштовуємо:
- Параметри метабоксу Проглядання залишаємо як є.
- Параметри метабоксу Вибрати систематики. У нашому типі рубрики та мітки будуть вимкнені.
- У метабоксі Мітки можна змінити написання стандартних команд своєю мовою.
- Вивести Розділи на дисплей:
- Заголовок – завжди залишаємо увімкненим, навіть якщо у вас немає потреби його виводити, це поле стане в нагоді для знаходження потрібного матеріалу в панелі адміністратора.
- редактор – візуальний редактор, стандартне поле для типів даних у WordPress. У нашому випадку це поле не знадобиться, відключаємо його.
- Коментарі – для Інтернет вітрини, вони будуть корисні, особливо якщо опису товарів буде мало. Коментарі допомагають зробити сторінки унікальнішими.
- Редакції – редакції – це копії документа, які зберігаються автоматично або в момент публікації та оновлення матеріалу на сайті. Думаю, що матеріал у нас у вітрині оновлюватиметься не часто, тому редакції ми можемо залишити вимкненими.
- Інші пункти крім Мініатюри що знаходяться нижче нам не потрібні. Ставимо галочку навпроти пункту Мініатюра.
- Індивідуальні поля – додаткові поля для виведення додаткової інформації, про них поговоримо пізніше.
- Розширений – розширені налаштування теж можна залишити як є.
Після всіх налаштувань натискаємо кнопку Зберегти індивідуальний тип публікації у нижній частині екрану.
Після збереження меню адміністратора з'явиться новий тип даних Товари.
Як бачимо, поряд із типом у меню у нас стандартна іконка, її можна змінити в налаштуваннях типу. Також можна змінити положення пункту в меню адміністратора.
Іконку необхідно вставляти у форматі ico або png.
Якщо ми зараз зайдемо в меню Товари -> Додати новий, то побачимо що у нас відображається лише назва товару. Так як товарів буде багато, то добре б їх поділити на групи, для цього:
- Знову заходимо в меню Types -> Індивідуальні типи публікацій та систематик.
- Додати індивідуальну систематику.
- Заповнюємо поля форми та вибираємо тип публікації Товар.
- Перейменовуємо мітки.
- Розширені налаштування залишаємо як є.
- Зберігаємо систематику.
Після виконаних дій зайшовши в Меню адміністратора -> Товари праворуч у нас з'явиться ще один метабокс Групи товарів, де можна задавати категорії у вигляді ключових фраз. Цей метабокс схожий на Мітки.
Якщо все вийшло, то продовжуємо далі.
Наступним кроком буде додавання кількох додаткових полів для типу. Давайте перерахуємо, які це поля:
- Назва товару
- Ціна
- Опис товару
Поки що цих полів нам буде достатньо.
Заходимо до пункту Types -> Індивідуальні поля. У вікні вводимо Заголовок групи полів і Опис групи.
Нижче в метабоксі необхідно вказати Де виводити цю групу на дисплей. Під пунктом Типи публікацій натискаємо кнопку редагувати і відзначаємо тип Товари. Тут моно відзначатиме і кілька типів, якщо у вибраних типах будуть потрібні схожі поля.
Терміни і Шаблони не вибираємо.
Праворуч є група під назвою Наявні поля необхідно вибрати для назви та ціни товару Однорядкові поля, а дляОпис товару вибрати WYSIWYG.
Зліва у вас з'являться поля з налаштуваннями:
- Ввести назву поля – вводимо назву поля, наприклад Назва товару.
- Ввести поле динамічних даних у поле – тут необхідно ввести унікальне ім'я поля англійською, назвемо Назва продукту.
- Описати це поле - Можна залишити порожнім, тому що з назви поля все і так ясно.
- Просте або повторюване поле? -У нашому випадку, всі поля можуть мати лише одне значення. Цей параметр дуже зручний, якщо вам необхідно завантажити кілька картинок і виводити їх на сторінці.
- Обов'язково – ставимо галочку навпроти полів, які вважаємо обов'язковими.
Після налаштування всіх трьох полів можна натиснути на стрілку поруч із назвою та згорнути параметри поля.
Є ще два параметри для видалення поля хрестик та для сортування полів стрілка. Виставте поля в потрібному порядку та натискаємо Зберегти. Після збереження переходимо до створеного типу публікації Товари -> Додати новий. Якщо все було зроблено правильно, у вас з'являться нові індивідуальні поля.
Заходимо у меню Товари – > Групи товарів -> Створимо групи для товару.
- Фотоапарати
- Планшети
- Ноутбуки
У кожній групі для зручності створіть за 3 товару з описом та мініатюрами.
Далі необхідно наші товари вивести на екран і для цього нам доведеться увійти в меню Зовнішній вигляд – > Меню та додати нове меню під назвою Вітрина.
Далі в лівій колонці знаходимо метабокс Групи товарів,якщо груп товарів не виявилося, то можна їх увімкнути вгорі у вкладці Налаштування екрана. Вибираємо створені раніше групи товарів Ноутбуки, Планшети, Фотоапарати і додаємо їх до області створеного меню. Незабутній натиснути кнопку Зберегти меню.
Щоб відобразити меню заходимо до пункту Зовнішній вигляд -> Віджети і в бічну панель сайту перетягуємо віджет Довільне меню. Вводимо заголовок Категорії товарів і вибираємо меню Вітрина як показано на малюнку нижче.
Після всіх дій на сайті, з'явиться наше меню.
Тепер необхідно створити файл шаблону для виведення таксономії та дати йому ім'я
taxonomy-{taxonomy}.php
Натомість {taxonomy} необхідно вставити вміст Поля динамічних даних із створеної нами систематики Групи товарів.
У шаблоні необхідно додати структуру із файлу в завданні.
Структуру необхідно змінити під ваші налаштування полів.
Розглянемо всі функції, які використовувалися в шаблоні:
single_tag_title() – Виводить заголовок поточної мітки, якщо переглядається архівна сторінка мітки.
WP_Query() - задаючи різні параметри, можна робити вибірку та сортування записів. Схоже на запит до бази даних. Докладніше можна почитати на сайті розробників wordpress у кодексі, правда тільки англійською WP_Query(). Раджу подивитись на функцію, дуже корисна.
$wp_query->query_vars - Повертає масив змінних запиту. Для розуміння як працює ця конструкція, розкоментуйте її у файлі шаблону та перегляньте результат.
1 |
?><!--pre><?php print_r( $wp_query->query_vars) ?></pre--><?php |
have_posts() – перевіряє, чи має поточний запит WP результати для виведення.
the_post() – лічильник для циклу.
the_content() - Вміст посту або запису, оскільки ми редактор не включали, то ця функція нічого не робить.
get_post_meta($post_id, $key, $single) - Повертає дані з довільного поля. Кожне поле, яке ми створювали для типу має своє довільне поле, яке можна вивести через цю функцію.
$post_id (число) (обов'язковий) – ID публікації, довільні поля якого потрібно отримати.
$key (рядок) (обов'язковий) – назва довільного поля, значення якого потрібно отримати.
$single (логічний) – якщо виставити параметр у true, то функція поверне єдине значення у вигляді строки. Якщо параметр дорівнюватиме false або не буде встановлено, то функція поверне масив значень довільних полів.
Однак, якщо у значенні довільного поля знаходиться серіалізований масив, те закінчення true поверне, нормальний масив, а якщо вказати false, то повернеться масив в елементі (наприклад [0]) якого буде той самий серіалізований масив. тобто. у цьому випадку параметр працює "навпаки".
За замовчуванням: false
get_permalink() - Посилання на пост.
the_title_attribute( ‘echo=0’ ) - Атрибути посилання.
the_post_thumbnail(‘thumbnail’) - Мініатюра з розміром мініатюра.
Поговоримо докладніше про те, звідки я брав мітки для функції get_post_meta(). Візьмемо, наприклад:
1 |
get_post_meta($post->ID, "wpcf-product-name", $single = true); |
Зайдем в меню Товари та відкриємо один із товарів на редагування, далі у верхній частині екрану вибираємо Налаштування екрана і поставимо мітку навпроти пункту Довільні поля, при цьому з'явиться метабокс з аналогічною назвою.
Подивившись на картинку, все стане ясно, у вас можуть бути інші назви, тому необхідно уважно порівняти довільні поля з метабоксу., що знаходиться у файлі шаблону. Якщо ви все виправите, то у вас має змінитись висновок матеріалів типу товар.
Якщо у вас також вивівся товар, значить ви все зробили правильно і залишиться лише стилізувати висновок за допомогою стилів. Якщо вам не хочеться робити шаблон вручну, то можна автоматизувати виведення контенту без втручання в код. Висновок можна зробити за допомогою плагіна views , плагін хоч і платний але для тих хто постійно займається розробкою на WordPress цей плагін може прискорити роботу в 3-4 рази.
/*
- Базовий курс з веб-дизайну;
- Верстка сайтів;
- Загальний курс CMS WordPress та продовження курсу з розробки шаблонів;
- Розробка сайтів на PHP.
Доброго дня, цим плагіном можна сортувати мітки?
приклад:
——————————
Жанр: Комедія, бойовик
Актори: Брюс Лі
——————————
Тобто (комедія, бойовик, Брюс Лі) це мітки, які виводяться у різних місцях, можна реалізувати такий сортований висновок на міток на вордпрес?
Не зовсім зрозумів, що таке “мітки які виводяться у різних місцях”, але якщо ви говорите про те, що за мітками можна реалізувати висновок записів, це так.
У вашому випадку я робив би окрему таксономію на Жанр і на Актори і потім просто робив потрібний запит до бази. Поділ тег буде для вас у подальшій розробці.
Також можна скористатися плагіном views.
Куди зберігати файл taxonomy-{taxonomy}.php ?
wp-content/themes/ім'я теми/сюди
цей файл wordpress підхопить автоматично