WordPress как на ладони
wordpress jino

Meta Box — обзор плагина

Meta Box - продуманный и функциональный плагин WordPress, который помогает разработчикам экономить кучу времени при работе с метаполями всех видов: записи, термины, комментарии, пользователи и т.д.

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

На случай, когда базового функционала недостаточно, есть расширения. Они, например, позволяют создавать метаполя не только для постов (по умолчанию), но и для пользователей, элементов таксономий, комментариев или создавать отдельные страницы настроек. Поля могут быть повторяемыми и выводятся как угодно: в виде столбцов, вкладок или групп.

Meta Box рассчитан на разработчиков: метабоксы и поля создаются программно. Поэтому, нужны базовые знания в php!

Почему 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 (ядро)
Скачано: 41, размер: 0

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

Расширения - это плагины, расширяющие функционал 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.

Вместо заключения

Это вводная статья по плагину Meta Box, мы планируем сделать цикл статей по нему и подробно разобрать все его возможности. Эта страница еще не раз будет обновляться по ходу появления новых статей.

А пока, рекомендуем ознакомится с основами Meta Box и офф. документацией (англ).

И, конечно, успехов в работе!

campusboy 2660youtube.com/c/wpplus
Активный пользователь wp-kama.ru. WordPress-разработчик. Разработка сайтов и лендингов. Доработка существующих проектов. Сопровождение ресурсов.
Редакторы: Kama 5064
Meta Box — обзор плагина 6 комментов
  • Dimox

    Большинство возможностей в Meta Box - в виде платных плагинов, в Carbon Fields же всё это бесплатно. Так что выбор очевиден.

    Ответитьмесяц назад #
    • campusboy2660 cайт: www.youtube.com/c/wpplus

      Когда я работал со статьями и видео по Carbon Fields, меня часто обкладывали х**ми. Типа "Есть же ACF, какого хера ты пудришь голову своим Carbon Fields и подаёшь новичкам плохой пример". А в итоге, понравился он народу. Так что я бы насчёт очевидности не говорил. Не зря Meta Box популярен за рубежом. Видно есть на то основания. А насчёт Carbon Fields я не уверен, что он будет всегда бесплатным. Есть предпосылки считать, что скоро станет платным.

      2
      Ответитьмесяц назад #
      • Dimox

        Почему-то не пришло письмо об ответе, даже в спаме нет.

        ACF мне всегда не нравился тем, что, если клиент не дает доступ в админку сайта, приходилось писать ему инструкцию по установке и импорту данных плагина из xml-файла. Carbon Fields же эту проблему устранил. Печально будет, если его сделают платным. Мне очень удобно с ним работать.

        Ответитьмесяц назад #
        • Kama5064

          Почему-то не пришло письмо об ответе, даже в спаме нет.

          Был баг - опция не сохранялась, теперь его нет. Однако нужно снова подписаться на комменты статьи... Спасибо! thank_you

          Ответитьмесяц назад #
  • Дамир

    круто спасибо большое, все плагины хороши,
    а по Carbon Fields, будете еще делать? там версия поменялась

    2
    Ответитьмесяц назад #
    • campusboy2660 cайт: www.youtube.com/c/wpplus

      Спасибо за отзыв, Дамир! Насчёт Carbon Fields не знаю. Слишком много времени и сил это занимает, Вы даже не догадываетесь smile И выходит так, что 2 месяца описываешь, а он бац версию меняет и всё заново надо. То что есть сейчас - 80% актуально в целом. Вообще очень хочу всё обновить, но времени не хватает. Это же делается в свободное время от работы.

      2
      Ответитьмесяц назад #

Здравствуйте, !

Ваш комментарий
Предпросмотр