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

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

types-wordpress-plugin-post-page

 

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







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

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

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

types-in-menu

 

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

custom-fild-description После заполнения полей формы спускаемся ниже к настройкам:

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

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

save-types

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

new-tpes-on-menu

 

Рядом с новым типом материала в меню выводится стандартная иконка, ее тоже можно настроить в настройках типа. Там же можно настроить порядок(очередность) вывода пункта в меню администратора.

menu-types-icon

Ваша индивидуальная иконка должна быть формата ico или png.

types-ico-in-menu

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

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

 

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

types-group-publication

 

 

Следующим этапом будет добавление дополнительных полей для типа Товары.  Это будут следующие поля:

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

 

 

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

add-new-group-field

 

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

chack-custom-types

 

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

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

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

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

 

Поэтому же принципу добавляем и заполняем оставшиеся поля — Название товара и Цена

sort-type-filds

 

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

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

  • Смартфоны
  • Планшеты
  • Аксессуары

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

 

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

add-custom-menu-with-types

 

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

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

add-widget-to-sidebar

 

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

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

taxonomy-{taxonomy}.php

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

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

a1a7772ce8_Archive

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

 

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

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

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

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


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

Теперь давайте разберемся где найти метки для функции get_post_meta(). Например:


get_post_meta($post->ID, "wpcf-product-name", $single = true);

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

custom-field

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

material-from-site-tovar

 

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

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

 






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

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