admin_notices хук-подіяWP 3.1.0

Спрацьовує під час виведення нотаток (повідомлень, помилок) у верхній частині сторінки адмін-панелі. Функція, що прикріплюється, повинна виводити HTML на екран.

Незважаючи на те, що повідомлення виводиться під заголовком, технічно повідомлення виводиться раніше, воно просто потім переміщається під заголовок скриптом. Зроблено це для зручності, щоб замітку можна було вивести раніше, ніж виводиться HTML код самої сторінки.

Адмін-нотатки в WordPress (admin notises API)

Приклад того, як виглядає така замітка:

HTML код нотатки:

<div id="message" class="notice notice-success is-dismissible">
	<p>Запис оновлено. <a href="http://example.com/zagolovok/">Подивитися</a></p>
</div>

HTML шаблон таких повідомлень:

<div class="{class}"><p>{message}</p></div>
{class}

CSS класи блоку. Обов’язковий клас noticeі до нього додаємо, залежно від потреб:

  • notice-success– Для успішних операцій. Зелена смужка зліва.

  • notice-error– для помилок. Червона смужка зліва.

  • notice-warning– Для попереджень. Помаранчева смужка зліва.

  • notice-info– для інформації. Синя смужка зліва.

  • is-dismissible– Додає іконку-кнопку “закрити” (хрестик в кінці блоку). Значок додається через JavaScript. По кліку на неї блок-примітка буде прихований (віддалений), але цей стан не зберігається, тобто при оновленні сторінки блок знову буде відображатися.

class="notice notice-success is-dismissible"– Приклад всього набору класів.

Є ще клас update-nag– це блок із помаранчевою смужкою. Буде розташований перед заголовком <h2> , а чи не після і матиме css властивість inline-block , а чи не block, тобто. не всю ширину екрана.

Використовувати цей тип не рекомендується ніде.

До версії 4.7 були ще класу updated – те ж що notice-success і error – те ж що notice-error . Вони все ще підтримуються, але їх не рекомендується.

{message}
Текст або HTML повідомлення.
Аналоги події admin_notices

Цей хук має замінники, аналоги, які прийнято використовувати для тієї ж мети: вивести повідомлення, але в інших умовах:

  • network_admin_notices – використовується для роботи з мультисайтовим складанням, повідомлення буде виводитися для адміністратора мережі.

  • user_admin_notices – використовується для роботи з мультисайтовим складанням, повідомлення буде виводитися для адміністратора сайту мережі.

  • all_admin_notices – працює так само, як admin_notices, але має іншу назву. Напевно, для наочності мети використання в коді плагіна також можливо в майбутньому працюватимуть в різних умовах.

Використання

add_action( 'admin_notices', 'wp_kama_admin_notices_action');

/**
 * Function for `admin_notices` action-hook.
 *
 * @return void
 */
function wp_kama_admin_notices_action(){

	// action...
}

Приклади

0

#1 Базове використання

Припустимо, що ми пишемо плагін і при оновленні на сторінці опцій плагіна нам потрібно вивести повідомлення “Налаштування оновлено!”. Для цього в функції обробки запиту POST, при успішному оновленні додамо функцію до події ‘admin_notices’:

<?php
add_action( 'admin_notices', 'my_plugin_notice');
function my_plugin_notice() {
	?>
	<div class="notice notice-success is-dismissible">
		<p>Налаштування оновлено!</p>
	</div>
	<?php
}

Також тут ми можемо використовувати функцію локалізації _e , щоб повідомлення можна було перекладати:

<div class="notice notice-success is-dismissible">
	<p><?php _e( 'Налаштування оновлено!', 'my-text-domain' ); ?></p>
</div>

Клас “updated” виведе повідомлення з білим тлом та зеленою смужкою зліва.

0

#2 Висновок помилки

Приклад аналогічний першому, тільки тут виведемо повідомлення про помилку.

add_action('admin_notices', 'my_plugin_error_notice');
function my_plugin_error_notice(){
	$message = "Помилка збереження";
	echo '<div class="notice notice-error is-dismissible"> <p>'. $message .'</p></div>';
}

Клас “error” виведе повідомлення з білим тлом та червоною смужкою зліва.

0

#3 Нестандартний блок

add_action('admin_notices', function(){
	echo '<div class="update-nag"><p>Моє Повідомлення</p></div>';
});

Клас “update-nag” виведе повідомлення з білим тлом та оранжевою смужкою зліва. Крім того, блок буде розташований перед заголовком (тегом <h2> )

список змін

З версії 3.1.0Введено.

Де викликається хук

wp-admin/admin-header.php 303

do_action( 'admin_notices');

Де використовується хук у WordPress

wp-admin/includes/admin-filters.php 121

add_action( 'admin_notices', 'default_password_nag');

wp-admin/includes/admin-filters.php 122

add_action( 'admin_notices', 'new_user_email_admin_notice');

wp-admin/includes/admin-filters.php 132

add_action( 'admin_notices', 'update_nag', 3);

wp-admin/includes/admin-filters.php 133

add_action( 'admin_notices', 'deactivated_plugins_notice', 5);

wp-admin/includes/admin-filters.php 134

add_action( 'admin_notices', 'paused_plugins_notice', 5);

wp-admin/includes/admin-filters.php 135

add_action( 'admin_notices', 'paused_themes_notice', 5);

wp-admin/includes/admin-filters.php 136

add_action( 'admin_notices', 'maintenance_nag', 10);

wp-admin/includes/admin-filters.php 137

add_action( 'admin_notices', 'wp_recovery_mode_nag', 1);

wp-admin/includes/admin-filters.php 160

add_action( 'admin_notices', array( 'WP_Privacy_Policy_Content', 'notice' ) );

wp-admin/includes/ms-admin-filters.php 35

add_action( 'admin_notices', 'site_admin_notice');

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *