
Некоторое время назад я несколько обеспокоился судьбой полезнейшего плагина для Wordpress — Flutter. Разработка его прекратилась, а глюки остались, периодически выскакивая на сайтах моих клиентов, что не есть гуд.
Но, к счастью и спокойствию для меня, нашлись единомышленники, решившие подхватить разработку и всё к ней прилагающееся под новым именем. Встречайте: Magic Fields — плагин, позволяющий создавать разные типы записей с дополнительными полями.
У меня был большой опыт работы с Flutter, поэтому мне не составило труда быстро разобраться и с этим плагином, о котором расскажу интересности.
Несколько примеров того, для чего эту прелесть можно использовать:
- создание каталога сайтов
- создание фотоальбомов
- создание каталога с видео
- создание каталога песен (например, mp3 с текстами)
- создание вообще любых каталогов
- сортировка записей по каким-либо дополнительным параметрам (год, место, цена)
- создание магазина (каталога товаров, данные из которого можно использовать для подключения к разным платёжным системам)
О том, как именно с помощью этого плагина создавать всё выше перечисленное, я расскажу в следующих постах, которые составят серию «Создание сайтов с Wordpress & Magic Fields». Сейчас же краткая презентация и пара примеров.
По умолчанию в админке Wordpress есть раздел, где содержатся записи и раздел со страницами. С помощью плагина Magic Fields возможно создание неограниченного количества разделов, например «Песни», «Видео» или «Продукты».

Для каждого раздела можно создавать собственные дополнительные поля. Несомненно, плюсом является то, что можно убирать и ненужные стандартные опции: например, это могут быть теги или категории, или сам текстовый редактор.
Поля можно группировать, можно создавать дублируемые или уникальные группы. Например, для создания плейлиста с файлами, Вам понадобится создать дублируемую группу с полями «файл» и «заголовок». Поля также могут быть дублируемыми. В общем, сказка.
Предусмотрены следующие типы полей:
- Textbox (одна строка)
- Multiline Textbox (несколько строк: визуальный редактор или HTML)
- Checkbox
- Checkbox List (список с чекбоксами)
- Radiobutton List (список радиокнопок)
- Dropdown List (выпадающий список)
- Listbox (поле со списком)
- File (загрузка файла)
- Image (загрузка изображений)
- Date (дата с использованием выпадающего календаря)
- Audio (загрузка аудиофайлов, предусмотрен проигрыватель)
- Color Picker (штука для выбора цвета)
- Slider (ползунок по типу регулятора громкости)

В настройках можно включить возможность редактирования полей непосредственно на сайте: простым нажатием на текст откроется поле для его изменения – очень удобно в некоторых ситуациях. Есть два загрузчика: флэш и браузерный. Возможна интеграция с плагином Role Manager, позволяющим управлять правами пользователей. Если нужно, можно вообще убрать стандартные панели записей и страниц.
А теперь пример
Допустим, нам надо создать дополнительное поле «Место написания статьи». Для этого нам понадобится выполнить следующие действия.
1. Создать раздел, например «Мои записи». Для этого идём в Magic Fields → Write Panels и там нажимаем на кнопку «+ Create a Write Panel». Далее нам нужно указать, какие настройки необходимо применить для нового раздела. Выбираем, запись ли это или страница (Placement), даём название (можно по-русски, оно будет отображаться в левом меню), подключённые категории (Assigned Categories), один пост или несколько (Quantity), включаем-выключаем стандартные (Standard) и дополнительные поля (Advanced Fields).

2. После этого нам понадобится создать группу полей. Для этого идём в Magic Fields → Write Panels, там находим наш новоиспечённый раздел и кликаем «Edit Fields/Groups». Там нажимаем «+ Create a Group» и в появившемся редакторе указываем имя и включаем-выключаем возможность создавать дубликаты группы.

3. Далее необходимо создать дополнительно поле. Идём в Magic Fields → Write Panels, напротив нашего раздела жмём «Edit Fields/Groups», и рядом с нашей группой нажимаем на «create field». В появившемся редакторе указываем имя поля (Name) латинскими символами без пробелов, описание (Label) — отображаемое имя, вспомогательный текст (Help text) — можно объяснить предназначение поля, настраиваем дублируемость (Can be duplicated), порядок (Order), обязательность заполнения (Required) и тип поля (Type) — в нашем случае это обычное текстовое поле (Textbox).

4. Наш раздел создан и готов к использованию. Теперь создадим пробную запись. В блоке «Мои записи» кликаем «New» и заполнив всё необходимое, нажимаем «Опубликовать».

5. Теперь, чтобы отобразить информацию о «месте написания статьи», в желаемом месте шаблона необходимо добавить следующий код:
<?php $place = get('place');
if ($place != "") { ?>
<p>Место написания статьи: <?php echo $place; ?></p>
<?php } ?>
В итоге получаем то, что видим на скриншоте:

В настройках плагина мы включили возможность редактирования непосредственно с сайта (Edit-n-place), поэтому попробуем тут же изменить место написания статьи.

Надеюсь, Вы уже представили себе с какой лёгкостью мы будем создавать магазины и разнаобразные каталоги в следующих записях серии «Создание сайтов с Wordpress & Magic Fields».
Спасибо за внимание.
Артём Савельев.

Очень интересно, но видимо, потребует не мало времени чтобы с ним разобраться, подскажи, пожалуйста (на вскидку) — можно ли с помощью него загружать несколько объектов к посту, т.е. хранить каждый из 5 объектов в своем поле и затем использовать что-то вроде дополнительных рубрик в wordpress?
Если плагин умеет только создавать по одному полю и одному типу полей к записи, то лучше воспользоваться дополнительными полями без использования плагинов...
Ответить
@begenote, с его помощью можно загружать не только несколько объектов, но и несколько групп объектов, которые, как и объекты, могут иметь возможность быть продублированными. То есть неплохое структурированное деревце файлов можно получить при необходимости — и это для каждого поста.
Про дополнительные рубрики — если правильно тебя понял, ты имеешь в виду использование дополнительных полей для создания различных сортировок и фильтров. Да, такое возможно. Я пример показывал в этом уроке: seogad.ru/cms/mp3-wordpre...c-fields-jplayer
Ответить
Одно плохо. Писать статьи придется через админ панель. А мне нужно отдельную страницу для этого создать, чтобы пользователи приходили логинились и писали статью, заполнив обязательные поля. Такое можно сделать?
Ответить
Классный плагин. ...вот только как бы организовать расширенный поиск по отдельным полям?
Ответить
@Александр, зависит от того, что конкретно нужно, но в принципе можете попробовать сделать по аналогии с тем, как написано в конце этого урока: seogad.ru/tools/cms/mp3-w...c-fields-jplayer
Ответить
@Артём Савельев, не получилось у меня((
в общем, есть сайт с базой по школам танцев. там с помощью magic fields задаются стиль, адрес и т.д. нужно , чтобы можно было отсортировать по стилю из выпадающего списка стилей.
то есть нужно примерно тоже, что и в уроке seogad.ru/tools/cms/mp3-w...c-fields-jplayer , но без участия плеера, просто чтоб выводились адреса постов в результате.
можешь объяснить принцип? HELP
Ответить
Создаём форму с select, опции для которого выдираем из базы, ставим условие: если что-то выбрано в форме, показывать только то, что выбрано, для этого проверяем форму через isset и вставляем соответствующий фильтр (query) в отображение постов. Теперь пример.
Допустим, поле со стилем называется style.
<form method="post" action=""> <p>Стиль:<br /> <select name="style" > <option value=""></option> <?php $liststyles = $wpdb->get_results("SELECT DISTINCT meta_value FROM $wpdb->postmeta WHERE meta_key = 'style' ORDER BY meta_value"); foreach ($liststyles as $liststyle) { if ($liststyle->meta_value != '') { $option = '<option '; if ($liststyle->meta_value == $_REQUEST["style"]) {$option .= 'selected '; } $option .= 'value="'.$liststyle->meta_value.'">'; $option .= $liststyle->meta_value; $option .= '</option>'; echo $option; }} ?> </select> </p> <p><input type="submit" value="Показать" class="s_submit" name="submit" /> </p> </form> <?php if (isset($_REQUEST["style"])) { $showstyle=$_REQUEST["style"]; } else { $showstyle=""; }; if ($showstyle!= "") { query_posts($query_string . '&x_style='.$showstyle); } ?>Ответить
@Александр, извиняюсь за неотформатированный комок кода, не пойму как сделать, чтобы не склеивались абзацы.
Ответить
@Александр, вот здесь пример фильтра без песен, в самом низу.
seogad.ru/tools/cms/magicfields-photosite
Ответить
@Артём Савельев, спасибо. ща буду пробовать.
Ответить
@Артём Савельев, получилось))) СПАСИБО!
Ответить
@Артём Савельев, а вот как бы связать два фильтра? то есть чтобы сразу по двум параметрам фильтровать...
Ответить
Честно, ничего не понял по функционалу и принципам построения всего выше описанного, кроме списка того что можно с помощью него сделать.
Чета как-то сложно очень, если можно взять конкретно заточенный движок под каталог, или галерею, или магазин в частности, в конце концов есть и целевые плагины под WP.
Вобщем плаг. примечателен тем, что он как бы много в одном, но а это не всегда плюс.
Ответить
@carerakjan, это конструктор, из которого можно что-то нужное и под себя заточенное вылепить.
Ответить
Хочу у себя заделать рейтинг блогов, с помощью этого плагина реально ли нечто похожее собрать, раз это конструктор?
Ответить
Привет!
Не могу разобраться. Почему-то код вставки в блог не срабатывает. Я ввожу текст в доп поля, но ничего не получается. Не могу понять где ошибка.
Подскажите в какую сторону копать?
Ответить
@Игорь, возможно в последних версиях плагина что-то поменялось и не так, как здесь описано, делается.
Ответить
Здравствуйте а когда будет статья сортировка записей по каким-либо дополнительным параметрам (год, место, цена) и как можно сделать дата от и до год не выпадающий список а текстовое поле и последний вопрос как можно прикрутить javasript к определеному полю при сортировке
Ответить