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

В настройках плагина мы включили возможность редактирования непосредственно с сайта (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 к определеному полю при сортировке
Ответить
люди помогите куда мне вставлять
<?php $place = get ('place');
if ($place != "") { ?>
Место написания статьи:
в кокой файл чет не пойму!у мя поля не отображаются в посте!
Ответить
Присоединяюсь к просьбе Kim.
Очень бы хотелось почитать., а то сам как-то не могу разобраться.
Ответить
Не могу активировать(
уже попробовала несколько версий
Warning: require_once (PanelFields.php): failed to open stream: No such file or directory in /home/clients/stila_ftp0/domains/bc-teatr.com/html/wp-content/plugins/magic-fields/main.php on line 42 Fatal error: require_once (): Failed opening required 'PanelFields.php' (include_path='.:/usr/local/php/lib/php') in /home/clients/stila_ftp0/domains/bc-teatr.com/html/wp-content/plugins/magic-fields/main.php on line 42
Может быть Вы знаете в чем ошибка ?
Спасибо заранее
Ответить
Сразу предупрежу, что почти полный чайник в php, только разбираюсь. И ещё, понимаю, что очень много помощи прошу и потому буду рада хотя бы частичной помощи и любым применимым советам
[b]Лирика:[/b] Переделываю свою библиотеку по старым детским книгам (была известна как «Книги детства», но сейчас закрыта пока). Проект абсолютно некоммерческий, добровольческий, без рекламы и прочего. Пишу потихоньку ручками.
Поставила плагин Magic Fields для того, чтобы быстро вносить на сайт книги. Плагин работает, сделала нужные поля.
Стала выводить в single.php кастомные поля. С выведением обычных текстовых полей проблем нет, все работает через вставку такого кода для каждого поля:
ID, 'heroes', true);</p><p>if ($heroes != "") { ?></p><p>ГЕРОИ: </p><p>тут все ок, выводит в посте как:
ГЕРОИ: фея Синемора, принцесса Алисия
Затык приключился с выведением следующих вещей:
[b]1. Как вывести в пост ВСЕ внесённые через кастомные поля картинки? [/b]
Например, вношу через кастомные поля новую книгу, к ней (условно) есть три картинки-примера иллюстраций (количество картинок - до 10, добавляются в кастомных полях через + Add Another).
Всё, что пока смогла найти и успешно применить - загружается только одна картинка
первая в списке, через такой код:
</p><p>при этом она в полном размере, не миниатюра.
Кто знает, ПОСОВЕТУЙТЕ КОД, чтобы в итоге вывести:
1) все внесённые картинки одна над другой, каждая на новой строке ИЛИ
2) вывести в строку уменьшенные изображения всех внесённых картинок, при нажатии картинка появляется в оригинальном формате на затенённом поле (в принципе, для этого есть плагин Shutter Reloaded).
[b]2. Как вывести ВСЕ приложенные к посту файлы? [/b]
К посту может быть приложено n-ное количество файлов форматов doc, pdf, txt, rtf, djvu, zip, rar. Это файлы самих книг. При этом файлы могут со временем добавляться ещё.
Подскажите, плззз, КОД, чтобы вывести в посте списком или в строку ВСЕ загруженные файлы книги, в том числе в строке:
— иконку с изображением типа файла в зависимости от расширения,
— ссылку на скачку в виде слова-линка,
— размер файла в Mb
примерно так:
(иконка) [u]Скачать файл[/u] [ 1,3 Мb ]
(иконка) [u]Скачать файл[/u] [ 1,3 Мb ]
(иконка) [u]Скачать файл[/u] [ 1,3 Мb ]
[b]3. Как вывести поля, в которых может быть несколько значений?[/b]
Например, если в поле «Страна автора» выбрано несколько стран (выпадающий список либо чек-бокс)
Заранее спасибо!
Ответить
Упс, не знаю, как код здесь показать, который использовала
Ответить
Вопрос в следующем (он вроде был уже без внятного ответа). Каким образом можно создать на сайте под WordPress на странице возможность внести пользователю свою информацию без входа в панель администрирования? Т.е. нажал на кнопку типа «Добавить» и появились поля для ввода информации, которые потом при нажатии кнопки типа «Готово» преобразятся в простую и доходчивую информацию на главной странице?
P/S/ Типа как вот у вас вверху форма «Ваш комментарий», но чтобы она не комментарием была, а простой и быстрой записью?
Очень был бы признателен за помощь, совет, ответ и прочую полезную пользу!
Ответить
На русский язык он не переведён?
Ответить
Надеюсь ты мне поможешь...
Проблема в выводе файла (к примеру zip) в пост.
Создал поле file
Пытался выводить так:
Не выводит... ((((
Остальные поля выводит без проблем )
Как можно вывисти прикрепленный файл?
Ответить
@Sembler, не могли бы вы написать на почту? artsav@artsav.com — комментарии видимо вырезали код
Ответить
Спасибо за отличный пост!
А то пытался сделать обычный каталог товаров на базе wp-e-commerce, мозги сломал. А теперь все отлично делается, и конкретно под себя.
Ответить
Артем, можешь расшифровать что означает слово Дублирование? Зачем оно нужно для полей или для групп? В каких ситуациях может применяться и как это выглядит?
А также может быть подкинешь ссылки на тему настройки вывода категорий записей в формате каталога организаций по типу этого: www.nashgorod.ru/catalog/
Буду признателен!
Ответить
@maxxannik, Насколько я помню, это вроде возможность добавления нескольких одинаковых полей.
Ответить
У Вас всё очень красиво расписано! Спасибо! Выводить научился. Вопрос... Как сделать так, чтобы можно было создавать записи минуя админ-панель и при этом заполнять поля ?
Спасибо!
Ответить
Плагин понравился, сейчас пытаюсь колдовать. Если разобраться, то смогу сделать многое, чего раньше не мог сделать в wordpress.
Ответить
Здорово!) не знала, что есть такой полезный плагин)
Ответить