Создание своих типов данных. Плагин types для WordPress.

Как известно в WordPress изначально существует два основных типа это записи и страницы.

типы записей в wordpress

 

Сегодня я расскажу, как добавить новые типы данных, не лазя в исходный код CMS и совершенно без знания API WordPress.

Наверное, один из самых полезных плагинов для WordPress это плагин Types разработанный командой разработчиков с сайта wp-types.com.  Для начала можно зайти на сайт и скачать плагин как у самих разработчиков, так и с официального репозитория WordPress.

https://wordpress.org/extend/plugins/types/

После скачивания плагина и установки активируем его. Слева в меню появится новый пункт types

Типы данных в меню wordpress

 

Для начала заходим в пункт Types -> Индивидуальные типы и систематики и в нем нажимаем на кнопку Добавить индивидуальный тип публикации далее заполняем форму. Попробуем в WordPress сделать небольшую интернет витрину для публикации товаров на сайт.

Добавление новых полей индивидуального типа публикации

 

После заполнения спускаемся ниже и настраиваем: 

  1. Параметры метабокса Просматриваемость оставляем как есть.
  2. Параметры метабокса Выбрать систематики. В нашем типе рубрики и метки будут выключены.
  3. В метабоксе Метки можно изменить написание стандартных команд на свой язык.
    Изменение стандартных меток
  4. Вывести Разделы на дисплей:
    1. Заголовок – всегда оставляем включенным, даже если у вас нет необходимости его выводить, это поле пригодится для нахождения нужного материала в панели администратора.
    2. Редактор – визуальный редактор, стандартное поле для типов данных в WordPress. В нашем случаи это поле не понадобится, отключаем его.
    3. Комментарии – для Интернет витрины, они будут полезны, особенно если описания к товарам будет мало. Комментарии помогают сделать страницы более уникальными.
    4. Редакции – редакции это копии документа, которые сохраняются автоматически или в момент публикации и обновления материала на сайте. Думаю, что материал у нас в витрине будет обновляться не часто, поэтому редакции мы можем оставить отключенными.
    5. Остальные пункты кроме Миниатюры находящиеся ниже нам не нужны. Ставим галочку напротив пункта Миниатюра.
    6. Индивидуальные поля — дополнительные поля для вывода дополнительной информации, о них поговорим позднее.
  5. Расширенный – расширенные настройки тоже можно оставить как есть.

После всех настроек нажимаем на кнопку Сохранить индивидуальный тип публикации в нижней части экрана.

Сохранение типов публикации

После сохранения в меню администратора появится новый тип данных Товары.

Новый тип публикации в меню

 

Как видим, рядом с типом в меню у нас стандартная иконка, ее можно изменить в настройках типа. Там же можно изменить положение пункта в меню администратора.

Иконка для типа в меню

Иконку необходимо вставлять формата ico или png.

иконка для нового типа публикации

Если мы сейчас зайдем в меню Товары -> Добавить новый, то увидим что у нас отображается только название товара. Так как товаров будет много, то хорошо бы их разделить на группы, для этого:

  1. Снова заходим в меню Types -> Индивидуальные типы публикаций и систематик.
  2. Добавить индивидуальную систематику.
  3. Заполняем поля формы и выбираем тип публикации Товар.
  4. Переименовываем метки.
  5. Расширенные настройки оставляем как есть.
  6. Сохраняем систематику.

 

После проделанных действий зайдя в Меню администратора -> Товары справа у нас появятся еще один метабокс Групы товаров, где можно задавать категории в виде ключевых фраз. Этот метабокс похож на Метки.

Группы товаров типы данных в WordPress

 

Если все получилось, то продолжаем дальше.

Следующим шагом будет добавление нескольких дополнительных полей для типа. Давайте перечислим, какие это поля:

  • Название товара
  • Цена
  • Описание товара

 

Пока этих полей нам будет достаточно.

Заходим в пункт Types -> Индивидуальные поля. В появившемся окне вводим Заголовок группы полей и Описание группы.

Добавить новую группу полей

 

Ниже в метабоксе необходимо указать Где выводить эту группу на дисплей. Под пунктом Типы публикаций нажимаем кнопку Редактировать и отмечаем тип Товары. Здесь моно отмечать и несколько типов, если в выбранных типах будут нужны похожие поля.

Выбираем место где выводить поля

 

Термины и Шаблоны не выбираем.

Справа есть группа под названием Имеющиеся в распоряжении поля необходимо выбрать для названия и цены товара Однострочные поля, а дляОписания товара выбрать WYSIWYG.

Слева у вас появятся поля с настройками:

  • Ввести название поля – вводим название поля, например Название товара.
  • Ввести поле динамических данных в поле – тут необходимо ввести уникальное имя поля на английском, назовем product-name.
  • Описать это поле – можно оставить пустым, так как из названия поля все и так ясно.
  • Простое или повторяющееся поле? –в нашем случаи, все поля могут иметь только одно значение. Этот параметр очень удобный, если вам необходимо загрузить несколько картинок и потом выводить их на странице.
  • Обязательно – ставим галочку напротив полей, которые считаем обязательными.

 

После настройки всех трех полей можно нажать на стрелку рядом с названием и свернуть параметры поля.

Сортировка произвольных полей

 

Есть еще два параметра для удаления поля крестик и для сортировки полей стрелка. Выставьте поля в нужном порядке и нажимаем Сохранить. После сохранения переходим в созданный тип публикации Товары -> Добавить новый. Если все было сделано правильно у вас появятся новые индивидуальные поля. 

Заходим в меню Товары — > Группы товаров -> Создадим группы для товара.

  • Фотоаппараты
  • Планшеты
  • Ноутбуки

 В каждой группе для удобства создайте по 3 товара с описанием и миниатюрами.

 

Далее необходимо наши товары вывести на экран и для этого нам понадобится войти в меню Внешний вид — > Меню и добавить новое меню под названием Витрина.

Добавляем произвольное меню для вывода типа материалов

 

Далее в левой колонке находим метабокс Группы товаров,если групп товаров не оказалось, то можно их включить вверху во вкладке Настройки экрана. Выбираем созданные раньше группы товаров Ноутбуки, Планшеты, Фотоаппараты и добавляем их в область созданного меню. Незабываем нажать кнопку Сохранить меню.

Чтобы отобразить меню заходим в пункт Внешний вид -> Виджеты и в боковую панель сайта перетаскиваем виджет Произвольное меню. Вводим заголовок Категории товаров и выбираем меню Витрина как показано на рисунке ниже.

Добавляем виджет с произвольным меню - типы данных WordPress

 

После всех действий на сайте, появится наше меню.

Теперь необходимо создать файл шаблона для вывода таксономии и дать ему имя

taxonomy-{taxonomy}.php

Вместо {taxonomy} необходимо вставить содержимое Поля динамических данных из созданной нами систематики Группы товаров.

В шаблоне необходимо добавить структуру из файла в задании.

zip wordpress theme archive

 Структуру необходимо поменять под ваши настройки полей.

 

Рассмотрим все функции которые использовались в шаблоне: 

single_tag_title() — Выводит заголовок текущей метки, если просматривается архивная страница метки.

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

$wp_query->query_vars – возвращает массив переменных запроса. Для понимания как работает данная конструкция, раскомментируйте ее в файле шаблона и посмотрите результат.

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’) – миниатюра с размером thumbnail.

Поговорим подробнее о том откуда я брал метки для функции get_post_meta(). Возьмем к примеру:

Зайдем в меню Товары  и откроем один из товаров на редактирование, далее в верхней части экрана выбираем Настройки экрана и поставим метку напротив пункта Произвольные поля, при этом появится метабокс с аналогичным названием.

Произвольные поля WordPress

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

wordpress вывод товара на странице

 

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

Купить хостинг WordPress


Читайте также:

комментария 4

  1. Антон:

    Здравствуйте, этим плагином можно сортировать метки?

    Пример:
    ——————————
    Жанр: Комедия, боевик

    Актеры: Брюс Ли
    ——————————
    То есть (комедия, боевик, Брюс Ли) это метки, которые выводятся в разных местах, можно реализовать такой сортированный вывод на меток на вордпресс?

  2. Николаенко Максим:

    Не совсем понял что такое «метки которые выводятся в разных местах», но если вы говорите о том что по меткам можно реализовать вывод записей, то да.

    В вашем случаи я бы делал отдельную таксономию на Жанр и на Актеры и потом просто делал нужный запрос к базе. Разделение меток будет для вас в дальнейшей разработке.

    Также можно воспользоваться плагином views.

  3. Юрий:

    Куда сохранять файл taxonomy-{taxonomy}.php ?

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *