Meta Box
Meta Box (метабокс, мета бокс) — продуманный и функциональный плагин WordPress, который помогает разработчикам экономить кучу времени при работе с метаполями всех видов: записи, термины, комментарии, пользователи и т.д.
Плагин предоставляет огромный выбор полей (более 40) и множество опций для каждого типа. В результате, плагин позволяет создавать метаполя почти любой сложности.
Meta Box рассчитан на разработчиков: метабоксы и поля создаются программно. Поэтому, нужны базовые знания в php!
Когда базового функционала недостаточно, есть расширения. Они, например, позволяют создавать метаполя не только для постов (по умолчанию), но и для пользователей, элементов таксономий, комментариев или создавать отдельные страницы настроек. Поля могут быть повторяемыми и выводятся как угодно: в виде столбцов, вкладок или групп.
Установка и платные расширения
Meta Box устанавливается через админку WordPress - основной плагин (ядро). Бесплатные расширения также идут в виде обычных плагинов WordPress. Для всего этого установка стандартная.
Платные расширения скачиваются и устанавливаются отдельно - получаем расширение в виде zip архива и распаковываем его в папку /wp-content/plugins/, или устанавливаем zip архив через админку WordPress.
Начало работы с Meta Box
После установки в админке WordPress ничего не измениться - у плагина нет никакой страницы управления или настроек. Все что делает плагин - это предоставляет API для быстрого создания метаполей, страниц настроек и т.д.
Создание метабоксов вручную
Метабокс с метаполями создается вставкой в код темы или плагина массива с параметрами.
Код ниже регистрирует метабокс с 4 полями. Код можно поместить куда угодно, например, в файл темы functions.php
:
add_filter( 'rwmb_meta_boxes', 'prefix_meta_boxes' ); function prefix_meta_boxes( $meta_boxes ) { $meta_boxes[] = array( 'title' => 'Test Meta Box', 'fields' => array( array( 'id' => 'name', 'name' => 'Name', 'type' => 'text', ), array( 'id' => 'gender', 'name' => 'Gender', 'type' => 'radio', 'options' => array( 'm' => 'Male', 'f' => 'Female', ), ), array( 'id' => 'email', 'name' => 'Email', 'type' => 'email', ), array( 'id' => 'bio', 'name' => 'Biography', 'type' => 'textarea', ), ), ); return $meta_boxes; }
Теперь при создании или редактировании записи вы увидите такой метабокс:
Создание метабоксов через онлайн-генератор
Для быстрого и удобного создания массивов, которые затем нужно вставить в свой код, есть онлайн конструктор.
Выбираем в конструкторе нужные параметры и получаем готовый код для вставки в свой код.
Так выглядит конструктор:
Чтобы начать работу с конструктором:
- Зайдите на страницу с онлайн-генератором.
- Заполните добавьте нужные метаполя и укажите параметры для них.
- Нажмите кнопку «Generate Code» и получите код.
- Скопируйте его и вставьте в файл functions.php темы (или файл своего плагина).
Теперь зайдите в редактирование записи, и вы увидите только что созданный метабокс с выбранными метаполями (при условии, что метабокс генерировался для записей). К примеру, вот такой:
Или вот такие:
Возможности Meta Box огромны и в дальнейшем мы все их изучим. А пока для изучения можно посмотреть на демо код с github. В этом коде прописаны почти все возможные поля и параметры для них, доступные в бесплатной версии. Если разместить этот код в файле темы functions.php, мы получим такой метабокс (на картинке поля заполнены):
Получение и вывод значений полей
Выводить или получать значения полей, как и во всех подобных плагинах нужно самостоятельно, с помощью родных функций WordPress:
Или можно использовать специальную функцию плагина rwmb_meta()
, которая является оберткой для вышеперечисленных функций. Ей нужно передать название поля (идентификатор):
echo rwmb_meta( 'name' );
Подробнее о функциях для получения значений полей читайте здесь.
Надо понимать, что значения полей могут быть непростые, например массивы для multiple полей или массивы у повторяемых полей. Такие нестандартные значения полей нужно обрабатывать отдельно. Подобные примеры мы рассмотрим позже...
Почему Meta Box?
Есть много других плагинов для удобной работы с метаполями в WordPress, например Advanced Custom Fields (ACF), или Carbon Fields, подробный обзор по которому мы делали...
Так зачем нам нужен очередной плагин? — Потому что метаполя в WordPress - это очень мощный и востребованный инструмент и работать с ним нужно уметь наиболее эффективно. Каждый плагин обладает своими плюсами и минусами, например, ACF имеет админ-интерфейс для создания метаполей из-за которого он превратился в монстра... Carbon Fields имеет отличную от Meta Box логику кода. Другие плагины, не дотягивают по функционалу и т.д.
Нельзя однозначно сказать, что Meta Box - это эталон, он просто другой и кому-то он покажется удобнее, а кому-то нет. Пока мы не беремся давать оценку, а просто хотим разобраться в плюсах и минусах каждого из популярных плагинов для метаполей.
Возможности Meta Box
Создание метаполей для всего
- Для записей, страниц и типов записей. Доступно из коробки.
- Для профиля пользователя. На основе расширения MB User Meta.
- Для элементов таксономий (терминов). На основе расширения MB Term Meta.
- Страница настроек для темы или плагина. На основе расширения MB Settings Page.
Более 40 разновидностей полей
-
Плагин позволяет создавать поля типов: текст, текстовая область, визуальный редактор, изображение, файл, сообщение, выбор, флажок, радиокнопки, выбор времени, выбор таксономии, выбор пользователя, oembed и другие.
- Повторяемые поля почти для всех типов. Также поддерживаются повторяемые группы полей на основе расширения Meta Box Group.
Для разработчиков
- Данные метаполей сохраняются как принято в WordPress. А значит получать их можно встроенными функциями WP.
- Работает с Composer, если нужно включить плагин в свой проект.
- Совместим с плагином мультиязычности WPML (официально поддерживается командой WPML).
- Множество хуков для внедрения и изменения функций плагина.
Расширения для Meta Box
Расширения - это плагины, расширяющие функционал Meta Box. Под каждую задачу своё расширение - это позволяет иметь в составе только то, что нужно!
Бесплатные
- MB Custom Post Type
- Создание и управление произвольными типами постов и таксономиями в WordPress с помощью простого в использовании интерфейса.
- Meta Box Yoast SEO
- Добавляет содержимое произвольных полей в Yoast SEO Content Analysis, чтобы получить правильный SEO рейтинг.
- MB Comment Meta
- Добавляет произвольные поля в комментарии WordPress. Поддерживайте все типы полей и параметры.
- MB Custom Taxonomy
- Создание и управление таксономиями через удобный интерфейс WordPress.
- Meta Box Text Limiter
- Ограничивает количество символов или слов, введенных в полях типа
text
иtextarea
. - Meta Box – FacetWP Integrator
- Интеграция Meta Box и FacetWP. Позволяет создавать произвольные поля для поиска и фильтрации во фронтэнде.
- MB Rest API
- Добавляет значение метаполей из постов и терминов в WP REST API.
Платные
Все платные плагины и их пакеты распространяются на следующих условиях:
- 1 год обновлений (для Lifetime Bundle бессрочно)
- 1 год индивидуальной поддержки (для Lifetime Bundle бессрочно)
- Неограниченное количество сайтов
Продаются по отдельности или в виде пакета расширений:
- Lifetime Bundle - все расширения и бессрочная поддержка
- Developer Bundle - все расширения
- Core Bundle - 12 расширений. В списке ниже будут помечены
*
.
- Meta Box Builder *
- Создание произвольных метабоксов и произвольных полей с помощью мышки.
- Meta Box Group *
- Создание повторяющихся групп произвольных полей для улучшения внешнего вида и структуры метабоксов.
- MB Settings Page *
- Создание страниц настроек для тем, плагинов или веб-сайтов с красивым синтаксисом.
- MB Term Meta *
- Позволяет добавлять произвольные поля рубрикам, тегам или любым произвольным таксономиям с помощью простого синтаксиса.
- Meta Box Conditional Logic *
- Добавляет логику показа пользовательских метабоксов и произвольных полей в зависимости от разных условий.
- Meta Box Include Exclude *
- Показывает или скрывает метабоксы по ID, шаблону страницы, таксономии или пользовательской функции.
- MB Frontend Submission
- Создает во фронтэнде формы, позволяющие сохранять пользовательский контент. Их можно использовать всюду с помощью шоткода.
- Meta Box Columns *
- Отображает поля более красиво. Помещает их в сетку с 12 колонками, позволяя сделать метабоксы более компактными.
- Meta Box Tabs *
- Позволяет легко создавать вкладки для метабоксов. Поддержка 3 стилей вкладок WordPress и вкладка c иконками.
- MB Admin Columns *
- Отображает произвольные поля в таблице постов для всех их видов.
- MB Custom Table
- Позволяет сохранять данные произвольных полей в пользовательскую таблицу вместо хранения их в метатаблицах по умолчанию. При грамотном подходе уменьшает размер базы данных и увеличивает производительность.
- MB Revision
- Отслеживает изменения пользовательских полей в виде ревизий WordPress. Сохраняйте, сравнивайте, легко восстанавливайте изменения.
- MB User Meta
- Добавляет пользовательские поля в профиль пользователя.
- Meta Box Geolocation
- Автоматически и мгновенно заполняет данными о местоположении с помощью Google Maps Geolocation API.
- Meta Box Template *
- Позволяет определить шаблон для метабокса или метаполя.
- Meta Box Tooltip *
- Отображает справочную информацию для полей, используя красивые всплывающие подсказки.
- Meta Box Show Hide *
- Переключает метабоксы по шаблону страницы, типу поста, таксономии (включая категорию) с помощью Javascript.
Вместо заключения
Рекомендуем ознакомится с офф. документацией (англ).