Как сделать нестандартный сайт на wordpress, пользовательские типы записей и таксономия, custom post type taxonomy wordpress - Авторские материалы о продвижении вконтакте, wordpress фишках и плагинах, SMO, SEO, дизайне
Отборная информация, которая вставляет!

Делаем сайт с гибкой структурой на wordpress. Часть 1

Давно хотел написать этот цикл статей, но останавливала одна вещь, о которой будет сказано ниже.

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

Что же меня останавливало? На самом деле я хотел написать статью о том, как без плагинов создавать абсолютно любую структуру сайта, но ведь это смогут реализовать только те, кто разбирается в wordpress и его коде, а такие уже и сами знают как это сделать. А так как большая часть пользователей — новички, то им нужно что-то более простое. Поэтому пришлось изучить все плагины, которые работают с новой функцией в wordpress 3 версий — custom post type.

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

Реализуется это так:

  • типы записей (к примеру это будет отдельный раздел на сайте, где будут новинки кино) — через custom post type (типы записей)
  • отдельные рубрики и метки (к примеру, это будет рубрики «комедия», «ужастики» и т.д., а также метки-актеры) через custom taxonomy (таксономию)
  • отдельные значения в админке (к примеру, вы захотите сразу указывать отдельно в админке рейтинг фильма на кинопоиске) — custom meta box. (мета блоки)


Пускай названия вас не пугают, все очень просто на самом деле.

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

И решение это — серия плагинов , , .

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

1. — плагин для создания новых типов записей.

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

После активации, увидите страничку с кнопкой «Add new Post Type» — жмем её

Первые 2 значения Post type name singular, Post type name plural — это название вашего типа записей. Как видите, первое значение я написал на латинице — оно будет браться для функций движка (n.b. чтобы не было путаницы, пишите с маленькой буквы), второе — на русском, это значение будет использовано для админки.

Hierarchical — это значение указывает сможет ли тип записей иметь дочерние элементы (к примеру, как страницы и подстраницы) или нет.

Menu icon — сюда вставляем ссылочку на иконку для админки размером 16*16

Post type template — если для вывода этого типа данных вы сделали отдельный шаблон (расскажу в следующей части статьи), то здесь можно его выбрать

Features — здесь указываем какой стандартный набор полей будет у этого типа записей.

Additional boxes — это поле будет доступно только при включенном плагине More Fields о котором ниже

Taxonomies — указываем таксономию, добавлять новую можно при помощи плагина More Taxonomies о которм ниже.

Помимо стандартных значений, в плагине доступны ещё и дополнительные, для этого нажимаем на ссылку Advanced settings ниже и видим новые значения. Расскажу о некоторых.

Menu position — позиция блока в админке — вводим цифру

Enable permalinks — включает ЧПУ

Permalink base — ЧПУ база, т.е. как будет выглядеть урл вашей записи. Например, введем book, тогда ссылки этого типа записей будут выглядеть как сайт.ру/book/названиестатьи

Exclude from search — включить или нет тип записей в поиск

Далее идет много значений вроде Edit capability и т.д. — здесь нужно выбрать кому будет доступны права на добавление, удаление, чтение этого типа записей

После это идут значения ‘Add New’ text и т.д. — здесь вы можете перевести стандартные фразы, которые будут выводится в админке.

После того как все заполните и сохраните у вас должно появиться что-то вроде

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

2. — плагин для добавления новых полей ввода.

Как и в предыдущем случае, после активации в настройках плагина вам нужно будет нажать на кнопочку «Add new input box». Здесь мы укажем имя для новой группы полей и в каком типе записей они будут доступны. Потом сохраняем и возвращаемся к настройкам плагина, где вы увидите вашу новую группу. Жмем на неё. Здесь вы увидите, что можно добавлять новые поля нажав на кнопку Add new Field. Делаем это.

Field title — название поля

Custom field key — здесь на латинице пишем идентификатор, который будем использовать в дальнейшем для вывода содержимого на сайте. Стоит сделать здесь отступление — в чем прелесть данного плагина, он не пишет данные в какие-то свои таблицы. Любое поле, которые вы здесь создаете — автоматически будет трансформироваться в custom field — т.е. тоже самое вы могли бы сделать, если бы в админке добавляли дополнительное поле, прописывали бы его значение и т.д. Просто плагином мы можем сразу создать нужный набор полей, и кроме того, можем вставлять не только поле для ввода, но и другие типы форм — селекты, выбор даты, поле для ввода файлов и т.д.

Caption — здесь, если нужно пишем какое-то описание к полю, которое будет выводится в админке.

Далее идет выбор типа поля. Можете сделать его чем угодно, даже можно добавить стандартный виз редактор к полю, для этого отметьте WYSIWYG. Если нужно сделать выпадающий список с выбором значений, отметьте галочкой select, а в самом нижнем поле перечислите все значения через запятую, причем для значения по умолчанию поставьте рядом с ним символ звездочки, вот так Drums, Bells, *Whistles

На этом, с этим плагином все.

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

Это называется пользовательская таксономия и чтобы не добавлять её внося разные коды в тему, мы используем следующий плагин.

3. .

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

Hierarchical — указываем будет ли новый параметр иметь вложенные. Как пример, рубрики — имеют вложенные рубрики, а метки — нет.

Taxonomy slug — указываем на латинице название, которое будет использоваться в урле новой таксономии.

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

ENG

Custom post type
http://justintadlock.com/archives/2010/04/29/custom-post-types-in-wordpress
http://wpengineer.com/1969/impressions-of-custom-post-type/
http://thinkvitamin.com/code/create-your-first-wordpress-custom-post-type/
http://wptheming.com/2010/07/custom-post-type-resources/
http://sicdigital.com/2010/07/create-custom-post-type-for-image-upload-wordpress3/
http://codex.wordpress.org/Custom_Post_Types

Custom taxonomy
http://justintadlock.com/archives/2010/06/10/a-refresher-on-custom-taxonomies
http://codex.wordpress.org/Custom_Taxonomies

Add custom metabox
http://wptheming.com/2010/08/custom-metabox-for-post-type/
http://www.tanzilo.com/2009/01/15/wordpress-adding-a-custom-option-box-and-developing-file-upload-plugin/

РУ

Новые типы записей
http://www.wordpresser.ru/razrabotka-na-wordpress/nastraivaemye-tipy-zapisej-v-wordpress-3-0.html
http://dandreev.com/blog/wordpress/sozdanie-biblioteki-ili-custom-post-types/

Таксономия
http://dreamhelg.ru/2010/05/intorducing-into-custom-taxonomy-wordpress-3-0/

Ну а когда сделаете свой сайт, то его стоит проверить на юзабилити-тестирование для того, чтобы улучшить конверсию и отдачу.


 

Похожие статьи:



22 комментариев к “Делаем сайт с гибкой структурой на wordpress. Часть 1”


9643e5d7

  1. :

    Отличная и очень полезная статья, хотя это все уже знал и использую :)

    Все равно респект, «от себятины» в сети на самом деле мало последнее время почему-то ))

  2. :

    Очень полезная статья. Большое вам спасибо и огромное уважение за труд.
    Таксономия — слабое место WP, ваша статья позволяет это исправить.
    Best!

  3. :

    И мне как дедушке Морозу хочется от Вас получить красивый дизайн!!!!!

  4. :

    установил плагин More Fields,создал текстовой поле которое появилось в админке,заполняю его -наживаю опубликовать…но описание которое я ввел не выводится,может в шаблон код какой надо вставить?

  5. :

    Очень интересно, спасиб за интересную статью

  6. Хитрый:

    Спасибо огромное! Давно искал как грамотно реализовать новый тип материала

  7. Andrew:

    [Plugin: More Types] Wrong datatype?

  8. maxxannik:

    Здравствуйте!
    Статья просто снос мозга! Спасибо!

    Кто то столкнулся со следующей проблемой?
    1. WP 3.1.2 + More Type 1.1b (последняя версия на сегодня)
    2. Поставил.
    2.1. Выдало ошибку как в предшествующем комментарии сказано http://trend-bag.ru/custom-post-type-wordpress-1/comment-page-1/#comment-9817
    2.2. Поправил как на форуме написали. Вроде запустился.
    3. Захожу в список записей, все ОК. Захожу в карточку записи. Опля! Кракозябры! По всей странице и всем полям. Выхожу из записи. Все ОК.
    Есть решения?

  9. maxxannik:

    Детали:
    1. Сообщение об ошибке:
    Warning: call_user_func_array() [function.call-user-func-array]: First argument is expected to be a valid callback, ‘Array’ was given in /public_html/wp-includes/plugin.php on line 395

    2. Снимок:

  10. maxxannik:

    с кодировкой решение нашел.
    цитата от сюда
    AddDefaultCharset UTF-8
    в файле .htaccess есть?

  11. maxxannik:

    по ошибке $(«#new-tag-category»).val(«»); $(«.tagadd»).click();$(«#new-tag-post_tag»).val(«»); $(«.tagadd»).click();

    решение тут

    Все! Плагины заработали как надо! Я балдю!

  12. :

    Спасибо за статью. Но я предлагаю более простой способ. Можно установить тему от Elegant themes. В ней есть полный набор настроек начиная изменением дизайна от А до Я, заканчивая SEO. Темы сами по себе красивые + за счёт этих настроек можно отключить несколько плагинов. Пример этой темы можно посмотреть у меня на блоге.

  13. gaz12:

    Нужна помощь. Пишу в Permalink base «sport».
    Адресс страницы получается такой
    При переходе открывается главная страница вместо той, что нужна. Если Permalink base не использовать, то все работает. Что это может быть?

    • ETNO:

      возможно не переписывается ЧПУ. 1 что сделать, зайти на страницу настройки ЧПУ и просто нажать save ничего не изменяя. Также в настройках плагина, при создании нового типа записей, есть настройки вроде flush, rewrite — попробуйте поустанавливать галочки

  14. gaz12:

    Все настройки перелопатил несколько раз. Пока flush, rewrite не нахожу.
    ЧПУ были проставленны еще до установки плагина.

    • ETNO:

      не важно когда были установлены ЧПУ, нужно просто обновить страницу ЧПУ ничего не меняя. Можете другие плагины попробовать, сейчас их много отличных

  15. :

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

    • ETNO:

      примеров с php довольно много уже описано в интернете, ищите custom post type, custom taxonomy, custom meta boxes. Только, осилить это все можно обладая хотя бы базами php, в отличии от плагинов, где особо эти знания не нужны