# WP_GET_ADMIN_NOTICE() │ WP 6.4.0
Функция wp_get_admin_notice() создаёт и возвращает разметку для уведомления в админ-панели WordPress.
**Используется в:** wp_admin_notice()
**Временные затраты:**
- 1 раз — 0.000071 сек (очень быстро)
- 50000 раз — 0.10 сек (световая скорость)
## Хуки функции
- wp_admin_notice_args
- wp_admin_notice_markup
## Возвращаемое значение
Функция возвращает строку — разметку для уведомления.
## Использование
```php
wp_get_admin_notice( $message, $args );
Аргументы
-
$message (строка) (обязательный). Сообщение, которое будет отображаться в уведомлении.
-
$args (массив) (необязательный). Массив аргументов для уведомления.
По умолчанию: пустой массив
-
type (строка) (необязательный). Тип уведомления: например,
'error','success','warning','info'.
По умолчанию: пустая строка -
dismissible (true|false) (необязательный). Можно ли закрыть уведомление.
По умолчанию:false -
id (строка) (необязательный). Значение а��рибута ID уведомления.
По умолчанию: пустая строка -
additional_classes (массив строк) (необязательный). Дополнительные имена классов.
По умолчанию: пустой массив -
attributes (массив строк) (необязательный). Дополнительные атрибуты для блока уведомления.
По умолчанию: пустой массив -
paragraph_wrap (true|false) (необязательный). Оборачивать ли сообщение в теги параграфа.
По умолчанию:true
Примеры
Пример 1. Сбор и отображение уведомлений
$messages = [];
if ('some condition') {
$messages[] = wp_get_admin_notice('Примечание 1', ['type' => 'error']);
}
if ('some condition') {
$messages[] = wp_get_admin_notice('Примечание 2', ['type' => 'error']);
}
// Ваша дополнительная логика кода
echo implode("n", $messages);
Изменения
- С версии 6.4.0 — Функция была введена.
Код функции
function wp_get_admin_notice( $message, $args = array() ) {
$defaults = array(
'type' => '',
'dismissible' => false,
'id' => '',
'additional_classes' => array(),
'attributes' => array(),
'paragraph_wrap' => true,
);
$args = wp_parse_args( $args, $defaults );
// Фильтр аргументов
$args = apply_filters('wp_admin_notice_args', $args, $message);
$id = '';
$classes = 'notice';
$attributes = '';
if (is_string($args['id'])) {
$trimmed_id = trim($args['id']);
if ('' !== $trimmed_id) {
$id = 'id="' . $trimmed_id . '" ';
}
}
if (is_string($args['type'])) {
$type = trim($args['type']);
if (str_contains($type, ' ')) {
_doing_it_wrong(
__FUNCTION__,
sprintf(
/* translators: %s: Ключ "type". */
__('Ключ %s должен быть строкой без пробелов.'),
'type'
),
'6.4.0'
);
}
if ('' !== $type) {
$classes .= ' notice-' . $type;
}
}
if (true === $args['dismissible']) {
$classes .= ' is-dismissible';
}
if (is_array($args['additional_classes']) && !empty($args['additional_classes'])) {
$classes .= ' ' . implode(' ', $args['additional_classes']);
}
if (is_array($args['attributes']) && !empty($args['attributes'])) {
$attributes = '';
foreach ($args['attributes'] as $attr => $val) {
if (is_bool($val)) {
$attributes .= $val ? ' ' . $attr : '';
} elseif (is_int($attr)) {
$attributes .= ' ' . esc_attr(trim($val));
} elseif ($val) {
$attributes .= ' ' . $attr . '="' . esc_attr(trim($val)) . '"';
}
}
}
if (false !== $args['paragraph_wrap']) {
$message = "$message
";
}
$markup = sprintf('%4$s', $id, $classes, $attributes, $message);
// Фильтр разметки уведомления
return apply_filters('wp_admin_notice_markup', $markup, $message, $args);
}
Связанные функции
-
Управление админкой
get_submit_button()submit_button()wp_admin_notice()
-
Меню админки
add_menu_page()add_meta_box()add_options_page()add_submenu_page()add_theme_page()