#wordpress
#WordPress
Вопрос:
Я работаю над своим плагином WordPress и добавил уведомления в соответствии с требованием, но уведомления недопустимы.
Мой код добавлен:
if($findtext == ""){
$msg= '<div class="notice notice-error is-dismissible"><p>Please enter find text.</p><button type="button" class="notice-dismiss"><span class="screen-reader-text">Dismiss this notice.</span></button></div>';
} elseif ($replacetext == "") {
$msg= '<div class="notice notice-error is-dismissible"><p>Please enter replace text.</p><button type="button" class="notice-dismiss"><span class="screen-reader-text">Dismiss this notice.</span></button></div>';
} else {
$msg= '<div class="notice notice-error is-dismissible"><p>Please select location.</p><button type="button" class="notice-dismiss"><span class="screen-reader-text">Dismiss this notice.</span></button></div>';
}
Я добавил этот код, но уведомление недопустимо при нажатии на кнопку закрытия. Любая помощь приветствуется.
Комментарии:
1. Проверяли ли вы в консоли bowser inspector ошибки javascript, которые могут вызвать проблемы, так как имя класса селектора «is_dismissible» отобразит значок закрытия, который javascript обрабатывает в WordPress admin. Используете ли вы хук действия
admin_notices
для их отображения?2. @LoicTheAztec. Я добавил только этот код. Не какие-либо действия или что-то еще.
3. Итак, взгляните на: developer.wordpress.org/reference/hooks/admin_notices и используйте это просто как примеры кода.
Ответ №1:
Использование admin_notices
перехвата и правильной разметки и удаление из разметки
<button type="button" class="notice-dismiss"><span class="screen-reader-text">Dismiss this notice.</span></button>
Может решить проблему.
Переписанный PHP-код:
add_action( 'admin_notices', function () use ( $findtext, $replacetext ) {
if ( $findtext == "" ) {
?>
<div class="notice notice-error is-dismissible"><p>Please enter find text!</p></div>
<?php
return;
}
if ( $replacetext == "" ) {
?>
<div class="notice notice-error is-dismissible"><p>Please enter replace text.</p></div>
<?php
return;
}
?>
<div class="notice notice-error is-dismissible"><p>Please select location.</p></div>
<?php
} );
WordPress добавляет кнопку под капотом. Не нужно добавлять button
тег вручную. Теперь уведомления недопустимы.
Важно отметить:
Ваш код показывает уведомления каждый раз по вашей логике, вероятно, имеет смысл добавить проверку местоположения аналогично, как это сделали findtext и replacetext.