Функция do_meta_boxes()
в WordPress используется для вывода метабоксов в административной панели. Метабоксы создаются с помощью функции add_meta_box()
и могут отображаться на различных страницах админки, таких как страницы редактирования постов, страниц или других типов контента.
do_meta_boxes( $screen, $context, $object );
Параметры
$screen
(string|WP_Screen): Ярлык страницы админ-панели или объектWP_Screen
, на котором нужно отобразить метабоксы. Этот ярлык должен соответствовать тому, который вы использовали при регистрации метабокса через функциюadd_meta_box()
.$context
(string): Определяет место расположения метабокса на странице. Значение должно соответствовать тому, что было указано в параметре$context
функцииadd_meta_box()
. Обычно это может бытьnormal
,side
, илиadvanced
.$object
(mixed): Передает данные в первую функцию, которая выводит содержимое метабокса. Это может быть любой объект или массив данных, который вы хотите использовать в метабоксе.
Возвращаемое значение
Функция do_meta_boxes()
возвращает количество метабоксов, которые были выведены на экран. Возвращаемое значение имеет тип int
.
Пример 1: Регистрация и вывод метабокса
Этот пример демонстрирует, как можно зарегистрировать и вывести метабокс на странице редактирования поста.
Шаг 1: Сначала добавим метабокс с помощью функции add_meta_box()
:
// Функция для регистрации метабокса
function register_custom_meta_box() {
add_meta_box(
'custom_meta_box_id', // Уникальный идентификатор метабокса
'Мой пользовательский метабокс', // Заголовок метабокса
'display_custom_meta_box', // Функция для отображения содержимого метабокса
'post', // Тип экрана, где будет отображаться метабокс
'side', // Контекст размещения метабокса
'high' // Приоритет отображения
);
}
add_action( 'add_meta_boxes', 'register_custom_meta_box' );
// Функция для вывода содержимого метабокса
function display_custom_meta_box( $post ) {
echo '<p>Содержимое метабокса для поста: ' . get_the_title($post->ID) . '</p>';
}
Шаг 2: Вывод метабокса
Теперь нам нужно отобразить метабокс на странице редактирования. Для этого используем do_meta_boxes()
следующим образом:
// Функция для отображения метабоксов на странице редактирования
function show_custom_meta_boxes( $post ) {
$current_screen = get_current_screen();
do_meta_boxes( $current_screen->id, 'side', $post );
}
add_action( 'edit_form_after_sidebar', 'show_custom_meta_boxes' );
В этом примере do_meta_boxes()
будет выводить метабоксы в контексте side
на странице редактирования записи. Вывод будет осуществляться после боковой панели, благодаря функции edit_form_after_sidebar
.
Заключение
Функция do_meta_boxes()
позволяет гибко управлять отображением метабоксов в админ-панели WordPress. Вы можете легко настраивать, где и как будут отображаться метабоксы, что дает вам возможность создавать более функциональные и удобные интерфейсы для управления контентом.