Рабочий лытдыбр — плагин Custom Metabox Panels

Как я и обещал ранее, в этом посте я расскажу вам подробности своей новой работы. А так как она непосредственно связана с WordPress, то этот пост будет еще более интересный. Одной из первых моих задач было придумать что-то такое для WordPress, что могло бы упростить задачу ввода большого количества данных и их структуризации.

Для этого мной был придуман плагин, который позволяет добавлять custom fields в виде сэтов и отдельных панелек в админке при написании нового поста. Разумеется, прежде, чем изобретать велосипед, я погуглил вдоль и поперек. Видел аналогичные решения, но их главная проблема в том, что это в основном всем hardcoded в functions.php или реализовано посредством плагина с лимитацией на создание всего 1 панели.

Мой плагин, условное название «Custom Metabox Panels» позволяет добавлять в админку написания постов неограниченное количество таких панелей с неограниченным количеством полей для ввода. Все панели и поля создаются очень легко через административную часть плагина. Для наглядности скриншот ниже.

Custom Metabox Panels

Это административная часть плагина. В ней можно добавлять новую панель с сэтом полей для custom field. Добавленные панели появляются в таком виде при написании поста:

Custom Metabox Panel Example

Ссылка на скриншот 2 в полный размер.

Как видите, его предназначение весьма ясно. Допустим, вы делаете сайт для компании и используете WP в качестве CMS. У компании несколько линий продуктов, каждая из которых имеет свои особенные характеристики продуктов. Использовать custom fields в привычном стандартном виде просто задолбаешься и в конечном итоге будешь путаться. А наличие таких метабоксов для каждой линии продуктов заметно облегчает задачу ввода данных.

Технические данные плагина

Мой плагин «Custom Metabox Panels» немного особенный и я постарался сделать его как можно более простым в использовании. При его использовании нужно иметь в виду:

  • Плагин для своей админки подключает последнюю версию jQuery (вместо текущей 1.3.2).
  • Данные о метабоксах хранятся в специальной таблице wp_cfcmp, которая создается и удаляется при активировании и деактивировании плагина соотвественно.
  • Доступ к администрированию метабоксов добавляется к меню «Записи» (мне так было удобнее).
  • POST данных делается «грубо» а ля oldschool (не смог пока разобраться с AJAX-запросами из админки).
  • Custom Fields хранятся там, где и положено в wp_postmeta. Поэтому при удалении метабокса можно опционально попросить WP удалить введенные ранее данные.
  • Пока отсутствует опция редактирования метабокса (не вижу смысла ее пихать в данный момент).

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

Еще хочу избавиться от «грубого» сабмита данных и сделать его полностью ajax-совым.

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

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

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

Постовые

Самые крутые ноутбуки Одесса с доставкой по Украине.
Новости Одессы. Одесса важнейший экономический и туристический центр Украины.
  • Оч. интригующе :). А как записаться в тестеры?

    (ЗЫ. Размер текста в поле комментария ОЧЕНЬ мелкий!!!)

  • Можно меня тоже в тестеры? :)

    и начиная с какой версии вордпресса этот плагин можно использовать?

  • А можно более полный кейс использования? Куда потом эти кастом феед вставлять? (Возможно очень ламерские вопросы, но WP пока в процессе изучения)

    • Custom fields крайне полезная штука. Их удобно использовать, когда нужно добавлять дополнительную информацию в пост. Или реализовать какую-то внештатную логическую схему, которую стандартными методами нельзя сделать. У меня на блоге custom fields используются в таких постах:

      www.slaff.net/blog/2010/0... -world-expo.html

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

  • Понятно, спасибо. Посмотрю, как возможно использовать.

  • Идея хорошая.

    Я уже более года пользуюсь Custom Field Template. Очень удобный плагин. Можно настроить несколько шаблонов, использовать разные типы полей ввода, например SELECT, RADIO, CHECKBOX (для удобства автора поста).

    Информация тут:

    wpgogo.com/development/cu...ld-template.html

    wordpress.org/extend/plug... -field-template/

    Может пригодится.

Ваш комментарий

XHTML: вы можете воспользоваться следующими тагами: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>