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(строка, обязательный) — атрибутidhtml-тега, контейнера блока.$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 • Мета данные
