Функциональный каталог на WordPress + Magic Fields. Часть 1

12 февраля 2012

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

В число таких плагинов входит Magic Fields, возможностям которого посвящена данная заметка.

Нельзя сказать, что плагин Magic Fields очень сложен в использовании. Все достаточно просто и интуитивно понятно, но, по какой-то причине, мало кто осознает всю широту возможностей Magic Fields. Обычно, его используют как несколько более удобную альтернативу стандартным произвольным полям. Но это не серьезно…

И так, что можно сделать с помощью этого плагина? Я узнал о нем, когда мне понадобилось превратить одну из категорий блога в полноценный каталог. Где-то пару месяцев назад я заинтересовался разработкой приложений под Google Android. Так как большого количества свободного времени нет, решил для начала замутить скромненький блог об этой ос и обо всем, что с ней связано и интересно, прежде всего, мне самому. В общем-то сразу пришла мысль сделать каталог гаджетов (смартфоны, планшетники), которые работают на Android.

Что должно входить в число функциональных возможностей каталога? Безусловно, нужны сортировки и фильтры по каким-либо параметрам позиций каталога. Также форма поиска, для быстрого доступа к конкретным позициям. Сразу становится очевидно, что базовых возможностей WorPress будет недостаточно.

Рекомендую устанавливать Magic Fields из репозитария WordPress. Таким образом вы обеспечите себе работу с последней версией приложения.

Непосредственно у самого плагина нет никаких настроек. Сразу после установки Magic Fields можно переходить к созданию списка дополнительных полей. Делается это на странице плагина, попасть на которую можно из левого меню панели управления WordPress.

Как видно из скриншота, набор полей можно импортировать, например, если он уже был создан предварительно. Это очень удобно, допустим, если вы делаете сайты в массовом порядке и все они должны содержать однотипный каталог, как то рубрикатор интернет-магазина.
Для создания нового набора полей предназначена кнопка «+ Create Write Panel».

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

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

Тыркнув на «New», вы попадете на страницу с привычной формой публикации постов (или страниц) блога, но с дополнительными кнопками и блоками. Иначе говоря, плагин Magic Fields создает альтернативную форму для публикации новостей и снабжает ее дополнительными возможностями.

Собственно, различные настройки на странице создания группы полей, как раз таки позволяют определить, какие из стандартных возможностей формы WordPress мы желаем оставить, а какие следует убрать. Например, в блоке Advanced Fields логично снять галочку с чекбокса Сustom Fields, так как именно для их замены мы поставили плагин. В Standard Fields я отключал вывод списка категорий (чекбокс Categories), потому, что мне дополнительные поля требовались только для категории с устройствами и выбирать попросту было нечего.

Созданная группа появляется в списке и пригодна для добавления в нее полей.

Список полей пуст, поэтому сразу приступаем к созданию нового поля. Для этого жмем «+ Create a Field»

Делать скриншот формы я не буду. Там все понятно и без лишних комментариев. Отмечу только, что поле «Name» должно содержать уникальный (в рамках набора полей) идентификатор для создаваемого поля. Именно по этому идентификатору вы сможете выводить поля в шаблоне, сортировать и искать публикации.

Я создал два поля типа Dropdown List – это обычный Select.

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

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

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?php if (in_category(3)) { ?>
	<table>
	<?php $device_producer = get('device_producer');  if($device_producer != '') { ?>
	<tr>
		<th><span>Производитель</span></th>
		<td><a href="/c/devices/?device_producer=<?php echo $device_producer; ?>"><?php echo $device_producer; ?></a></td>
	</tr>
	<?php } ?>
	<?php $device_os = get('device_os');  if($device_os != '') { ?>
	<tr>
		<th><span>Операционная система</span></th>
		<td><a href="/c/devices/?device_os=<?php echo $device_os; ?>"><?php echo $device_os; ?></a></td>
	</tr>
	<?php } ?>
	</table>
<? } ?>

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

Чтобы видеть, как все это работает, можете посмотреть любую публикацию с этой страницы http://iamdroid.ru/c/devices. Это тот самый каталог мобильных устройств, о котором я говорил в начале.

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

Категория: WordPress

Мурашов Олег

Программист и фрилансер из Санкт-Петербурга. Помимо веб-программирования, занимаюсь разработкой мобильных приложений для платформы Android. Играю на бас гитаре. Занимаюсь спортом.

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

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

*