- Описание функции
- Примеры использования
- Добавление метабокса на страницу редактирования поста
- Отображение метабокса на странице создания нового поста
- Использование метабокса на странице редактирования комментария
- Настройка метабокса на странице редактирования пользовательского типа записи
- Отображение метабокса на странице редактирования ссылки
- Вопросы и ответы
- Как добавить метабокс в WordPress?
- Как изменить заголовок метабокса?
- Как изменить контекст отображения метабокса?
- Как изменить приоритет отображения метабокса?
- Как указать на каких экранах отображать метабокс?
- Как вывести содержимое метабокса?
- Как удалить метабокс из экрана?
- Как изменить порядок отображения метабоксов на экране?
- Связанные элементы
Описание функции
Функция add_meta_box() используется для добавления мета-блока на один или несколько экранов в административной панели WordPress. Мета-блоки представляют собой дополнительную информацию или настройки, которые могут быть добавлены к различным типам записей, таким как посты, страницы, пользователи и т. д.
Мета-блоки обычно отображаются на экране редактирования записи и позволяют пользователям вводить и сохранять дополнительные данные, которые не входят в основное содержимое записи.
Использование
add_meta_box( string $id, string $title, callable $callback, string|array|WP_Screen $screen = null, string $context = 'advanced', string $priority = 'default', array $callback_args = null ) Функция add_meta_box() принимает следующие параметры:
$id(string) — Обязательный. Идентификатор мета-блока (используется в атрибуте ‘id’ для мета-блока).$title(string) — Обязательный. Заголовок мета-блока.$callback(callable) — Обязательный. Функция, которая заполняет мета-блок необходимым содержимым. Функция должна выводить свой результат с помощьюecho.$screen(string|array|WP_Screen) — Необязательный. Экран или экраны, на которых должен отображаться мета-блок (например, тип записи, ‘link’ или ‘comment’). Принимает один идентификатор экрана, объект WP_Screen или массив идентификаторов экранов. По умолчанию используется текущий экран.$context(string) — Необязательный. Контекст, в котором должен отображаться мета-блок на экране. Доступные контексты зависят от экрана. Контексты редактирования записей включают ‘normal’, ‘side’ и ‘advanced’. Контексты экранов комментариев включают ‘normal’ и ‘side’. Все мета-блоки меню (разделы аккордеона) используют контекст ‘side’. Глобальное значение по умолчанию — ‘advanced’.$priority(string) — Необязательный. Приоритет отображения мета-блока в контексте. Принимает значения ‘high’, ‘core’, ‘default’ или ‘low’. По умолчанию — ‘default’.$callback_args(array) — Необязательный. Данные, которые должны быть установлены в свойство $args массива мета-блока (второй параметр, передаваемый в вашу функцию обратного вызова). По умолчанию —null.
<?php
function my_meta_box_callback( $post ) {
// Вывод содержимого мета-блока
echo 'Это содержимое мета-блока';
}
function my_meta_box() {
// Добавление мета-блока на экран редактирования записи
add_meta_box( 'my-meta-box', 'Мой мета-блок', 'my_meta_box_callback', 'post', 'normal', 'high' );
}
add_action( 'add_meta_boxes', 'my_meta_box' );
?> В приведенном выше примере мы создаем функцию обратного вызова my_meta_box_callback(), которая выводит содержимое мета-блока. Затем мы создаем функцию my_meta_box(), которая использует add_meta_box() для добавления мета-блока на экран редактирования записи типа ‘post’. Мета-блок будет отображаться в нормальном контексте с высоким приоритетом.
Мы используем хук add_meta_boxes, чтобы вызвать функцию my_meta_box() и добавить мета-блок на экран редактирования записи.
Примеры использования
Добавление метабокса на страницу редактирования поста
function wpdocs_add_meta_box() {
$screens = array( 'post' );
foreach ( $screens as $screen ) {
add_meta_box(
'my_meta_box_id',
'My Meta Box',
'wpdocs_my_meta_box_callback',
$screen
);
}
}
add_action( 'add_meta_boxes', 'wpdocs_add_meta_box' );
function wpdocs_my_meta_box_callback( $post ) {
// Content of the meta box
}
Отображение метабокса на странице создания нового поста
function wpdocs_add_meta_box() {
$screens = array( 'post' );
foreach ( $screens as $screen ) {
add_meta_box(
'my_meta_box_id',
'My Meta Box',
'wpdocs_my_meta_box_callback',
$screen,
'advanced',
'default'
);
}
}
add_action( 'add_meta_boxes', 'wpdocs_add_meta_box' );
function wpdocs_my_meta_box_callback( $post ) {
// Content of the meta box
}
Использование метабокса на странице редактирования комментария
function wpdocs_add_meta_box() {
$screens = array( 'comment' );
foreach ( $screens as $screen ) {
add_meta_box(
'my_meta_box_id',
'My Meta Box',
'wpdocs_my_meta_box_callback',
$screen,
'normal',
'default'
);
}
}
add_action( 'add_meta_boxes', 'wpdocs_add_meta_box' );
function wpdocs_my_meta_box_callback( $comment ) {
// Content of the meta box
}
Настройка метабокса на странице редактирования пользовательского типа записи
function wpdocs_add_meta_box() {
$screens = array( 'custom_post_type' );
foreach ( $screens as $screen ) {
add_meta_box(
'my_meta_box_id',
'My Meta Box',
'wpdocs_my_meta_box_callback',
$screen,
'side',
'default'
);
}
}
add_action( 'add_meta_boxes', 'wpdocs_add_meta_box' );
function wpdocs_my_meta_box_callback( $post ) {
// Content of the meta box
}
Отображение метабокса на странице редактирования ссылки
function wpdocs_add_meta_box() {
$screens = array( 'link' );
foreach ( $screens as $screen ) {
add_meta_box(
'my_meta_box_id',
'My Meta Box',
'wpdocs_my_meta_box_callback',
$screen,
'side',
'default'
);
}
}
add_action( 'add_meta_boxes', 'wpdocs_add_meta_box' );
function wpdocs_my_meta_box_callback( $post ) {
// Content of the meta box
}
Вопросы и ответы
Как добавить метабокс в WordPress?
Для добавления метабокса в WordPress используется функция add_meta_box(). Она принимает несколько параметров, включая ID метабокса, заголовок, функцию, которая заполняет метабокс контентом, и другие настройки.
Пример использования функции add_meta_box():
function my_meta_box_callback( $post ) {
// Код для заполнения метабокса контентом
}
function my_meta_box() {
add_meta_box( 'my-meta-box', 'Мой метабокс', 'my_meta_box_callback', 'post', 'normal', 'high' );
}
add_action( 'add_meta_boxes', 'my_meta_box' );
Как изменить заголовок метабокса?
Заголовок метабокса можно изменить, передав его вторым параметром в функцию add_meta_box().
Пример изменения заголовка метабокса:
function my_meta_box_callback( $post ) {
// Код для заполнения метабокса контентом
}
function my_meta_box() {
add_meta_box( 'my-meta-box', 'Новый заголовок', 'my_meta_box_callback', 'post', 'normal', 'high' );
}
add_action( 'add_meta_boxes', 'my_meta_box' );
Как изменить контекст отображения метабокса?
Контекст отображения метабокса можно изменить, передав его пятой параметром в функцию add_meta_box(). Доступны различные контексты, такие как ‘normal’, ‘side’ и ‘advanced’.
Пример изменения контекста отображения метабокса:
function my_meta_box_callback( $post ) {
// Код для заполнения метабокса контентом
}
function my_meta_box() {
add_meta_box( 'my-meta-box', 'Мой метабокс', 'my_meta_box_callback', 'post', 'side', 'high' );
}
add_action( 'add_meta_boxes', 'my_meta_box' );
Как изменить приоритет отображения метабокса?
Приоритет отображения метабокса можно изменить, передав его шестым параметром в функцию add_meta_box(). Доступны значения ‘high’, ‘core’, ‘default’ и ‘low’.
Пример изменения приоритета отображения метабокса:
function my_meta_box_callback( $post ) {
// Код для заполнения метабокса контентом
}
function my_meta_box() {
add_meta_box( 'my-meta-box', 'Мой метабокс', 'my_meta_box_callback', 'post', 'normal', 'low' );
}
add_action( 'add_meta_boxes', 'my_meta_box' );
Как указать на каких экранах отображать метабокс?
Функция add_meta_box() позволяет добавить метабокс на один или несколько экранов. Для этого в параметре $screen нужно указать идентификаторы экранов, на которых должен отображаться метабокс.
Пример использования:
add_meta_box( 'my_meta_box', 'My Meta Box', 'my_meta_box_callback', 'post', 'normal', 'high' );
В данном примере метабокс будет отображаться на экране редактирования записей типа «post».
Как вывести содержимое метабокса?
Для вывода содержимого метабокса необходимо создать функцию, которая будет заполнять метабокс нужным контентом и вызвать ее в параметре $callback функции add_meta_box(). Функция должна использовать echo для вывода контента.
Пример использования:
function my_meta_box_callback( $post ) {
// Вывод контента метабокса
echo 'This is my meta box content.';
}
В данном примере функция my_meta_box_callback() будет выводить текст «This is my meta box content.» в метабоксе.
Как удалить метабокс из экрана?
Для удаления метабокса с экрана необходимо использовать функцию remove_meta_box(). В параметре $id нужно указать идентификатор метабокса, который был задан при его добавлении.
Пример использования:
remove_meta_box( 'my_meta_box', 'post', 'normal' );
В данном примере метабокс с идентификатором ‘my_meta_box’ будет удален с экрана редактирования записей типа «post».
Как изменить порядок отображения метабоксов на экране?
Для изменения порядка отображения метабоксов на экране необходимо использовать функцию reorder_meta_boxes(). В параметре $id нужно указать идентификатор экрана, на котором нужно изменить порядок метабоксов. В параметре $context указывается контекст метабоксов, для которого нужно изменить порядок.
Пример использования:
reorder_meta_boxes( 'post', 'normal' );
В данном примере будет изменен порядок отображения метабоксов в контексте ‘normal’ на экране редактирования записей типа «post».
Функция
add_meta_box()позволяет добавлять метабоксы на экраны редактирования записей в WordPress. С помощью параметров функции можно указать на каких экранах отображать метабокс, как вывести его содержимое, как удалить метабокс с экрана и как изменить порядок отображения метабоксов. Это полезный инструмент для разработчиков, позволяющий добавлять дополнительную функциональность к административной части сайта.
Связанные элементы
- Функция
get_post_meta(): возвращает значения метаданных для указанного объекта. - Функция
update_post_meta(): обновляет значения метаданных для указанного объекта. - Функция
delete_post_meta(): удаляет значения метаданных для указанного объекта. - Функция
add_user_meta(): добавляет метаданные для указанного пользователя. - Функция
get_user_meta(): возвращает значения метаданных для указанного пользователя. - Функция
update_user_meta(): обновляет значения метаданных для указанного пользователя. - Функция
delete_user_meta(): удаляет значения метаданных для указанного пользователя. - Хук
add_meta_boxes: вызывается при добавлении метабоксов на экран. - Класс
WP_Meta_Query: используется для создания сложных запросов к метаданным.