WordPress. Метабоксы. Часть 1 из 2
15.09.2019
Теги: CMS • Web-разработка • WordPress • МетаБокс • МетаДанные • ПанельУправления
Страница редактирования записи содержит множество стандартных метабоксов, которые доступны сразу после установки WordPress. Включить и выключить стандартные метабоксы можно наверху страницы редактирования записи, в панели Screen Options (Настройки экрана).
Перед тем, как создавать свои метабоксы, посмотрим, как можно удалить лишние.
Функция remove_meta_box()
Удаляет метабоксы на странице редактирования/создания поста, постоянной страницы или произвольного типа записи. Вызывать функцию нужно после того, как метабоксы были добавлены, например на хуке admin_menu
.
remove_meta_box($id, $screen, $context);
$id
(строка) — идентификатор метабокса; идентификаторы всех стандартных метабоксов будут перчислены ниже$screen
(строка) — тип записи, на странице редактирования которой нужно удалить метабокс, напримерpost
,page
$context
(строка) — расположение метабокса, может принимать значениеnormal
,advanced
илиside
/* * удаляем со страницы редактирования постов метабоксы * выбора рубрики и добавления цитаты */ add_action('admin_menu' , function () { remove_meta_box('categorydiv' , 'post' , 'side'); // рубрики remove_meta_box('postexcerpt' , 'post' , 'normal'); // цитата });
Стандартные метабоксы WordPress:
authordiv
— блок установки автораcategorydiv
— блок рубрикtagsdiv-post_tag
— блок метокcommentstatusdiv
— блок статуса комментированияcommentsdiv
— блок комментариевformatdiv
— форматы записейpageparentdiv
— атрибуты постоянных страницpostcustom
— блок произвольных полейpostexcerpt
— блок цитатыpostimagediv
— блок картинки к постуrevisionsdiv
— блок ревизийslugdiv
— блок установки slugtrackbacksdiv
— блок уведомлений
Способы добавления метабоксов
- Функция
register_post_type()
позволяет сразу задать, какие метабоксы будет на странице редактирования для данного типа записи. - Функция
register_taxonomy_for_object_type()
приписывает таксономию к типу записи, а значит, добавляются и метабоксы. - Функция
add_post_type_support()
позволяет для указанного типа записи добавить указанные метабоксы из числа стандартных.
add_action('init', function () { $args = [ 'show_ui' => true, /* * присвоив таксономию для этого типа записи, мы автоматически * подключаем метабокс этой таксономии */ 'taxonomies' => ['category'], /* * матабоксы, которые должны быть на странице редактирования */ 'supports' => ['title', 'editor'] ]; register_post_type('book', $args); });
register_post_type()
и remove_meta_box()
отличаются.
add_action('init', function () { register_taxonomy_for_object_type('post_tag', 'book'); });
add_action('init', function () { add_post_type_support('book', 'excerpt'); // цитата add_post_type_support('product', ['excerpt', 'thumbnail']); // цитата и миниатюра });
Функция add_meta_box()
Добавляет дополнительные метабоксы на страницу редактирования/создания поста, страницы или произвольного типа записи в панели управления. Функцию нужно вызывать на хуке add_meta_boxes
.
add_meta_box($id, $title, $callback, $post_type, $context, $priority, $args);
$id
(строка, обязательный) — атрибутid
html-тега, контейнера блока.$title
(строка, обязательный) — заголовок метабокса.$callback
(строка, обязательный) — функция, которая выводит на экран содержимое блока.$post_type
(строка, обязательный) — тип записей, для которых будет показан метабокс.$context
(строка) — в какой части страницы вставить метабокс (normal
,side
,advanced
), по умолчанию —advanced
.$priority
(строка) — чем выше приоритет, тем выше будет метабокс (high
,core
,default
илиlow
), по умолчанию —default
.$args
(массив) — аргументы для callback-функции.
- WordPress. Фильтр записей по произвольным полям. Часть 1 из 3
- WordPress. Добавляем мета-теги. Часть 3 из 3
- WordPress. Метабоксы. Часть 2 из 2
- WordPress. Фильтр записей по произвольным полям. Часть 3 из 3
- WordPress. Фильтр записей по произвольным полям. Часть 2 из 3
- WordPress. Добавляем мета-теги. Часть 2 из 3
- WordPress. Произвольные поля. Часть 2 из 2
Поиск: CMS • Web-разработка • WordPress • Панель управления • Метабокс • add_meta_box • remove_meta_box • Мета данные