Уведомления, добавленные в WordPress, не подлежат удалению

#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.