У меня есть тип записи, который использует post_save, чтобы извлечь адрес из post-meta и получить координаты широты / долготы из Google API. Мне нужен способ уведомления пользователя, если возникла проблема с получением координат. Я пытался использовать admin_notices, но ничего не отображается:
public static function update_notice() {
echo "<div class='error'><p>Failed to retrieve coordinates. Please check key and address.<p></div>";
remove_action('admin_notices', 'update_notice');
}
add_action('admin_notices', array('GeoPost', 'update_notice'));
Я не уверен, что я использую это неправильно или в неправильном контексте. Чтобы было понятно, в реальном коде add_action находится в другой функции того же класса. Это работает нормально.
posts
plugin-development
wp-admin
Джейсон
источник
источник
Ответы:
Причина, по которой это не работает, заключается в том, что после действия save_post происходит перенаправление. Один из способов добиться желаемого - это быстро обойти использование переменных запросов.
Вот пример класса для демонстрации:
Надеюсь, это поможет вам немного. ура
источник
public function admin_notices()
(дополнительная закрывающая скобка вif ( ! isset(..
строке)remove_query_arg('YOUR_QUERY_VAR');
как я нашел, это может быть установлено из последнего обновления.Сделал класс-оболочку для такого сценария. На самом деле класс может использоваться в любом сценарии, включающем отображение уведомлений. Я использую стандарты PSR, поэтому наименование нетипично для кода Wordpress.
Использование:
Уведомление отображается один раз.
источник
В дополнение к ответу @ jonathanbardo, который является большим и функции хорошо, если вы хотите удалить аргумент запроса после загрузки новой страницы, вы можете использовать removable_query_args фильтр. Вы получаете массив имен аргументов, к которым вы можете добавить свой собственный аргумент. Затем WP позаботится об удалении всех аргументов в списке из URL.
Что-то вроде:
Станет:
источник
Простой, элегантный, на основе
get_settings_errors()
.использование
В вашем посте обработчик запросов:
Где вы хотите использовать уведомление администратора, как правило, в
admin_notices
ловушку.источник