Существует несколько компонентов для создания ошибки / уведомления и процесса отображения:
add_settings_error()
вызов для добавления элемента в стек (глобальная $wp_settings_errors
переменная).
settings_errors
переходный процесс, который сохраняет ошибки, чтобы они выживали перемещаться со страницы на страницу.
settings_errors()
функция get_settings_errors()
для извлечения ошибок из памяти или переходных процессов, а затем отображает их.
Они работают как прелесть для настроек API, но, к сожалению, они не настроены для общего использования. С другой стороны, обойти это тривиально.
Крючок settings_errors()
для admin_notices
на странице вашего плагина, передать код ошибки к нему , так что только показывает свои вещи.
Вручную сохраняйте ошибки для settings_errors
переходного процесса (просто вставьте в него глобальную переменную).
Поскольку get_settings_errors()
в GET-параметрах ( $_GET['settings-updated']
) ожидается подсказка о том, что он должен проверять переходные процессы вместо памяти, вы можете либо предоставить это, либо получить ошибки от переходных процессов самостоятельно и сохранить их обратно в глобальную переменную перед вашим settings_errors()
вызовом.
Обновить
Вы превращаете это в беспорядок с несколькими вопросами, поэтому я постараюсь решить ваши проблемы здесь.
Настройки API делает работу с администратором страницами, которые не используют раздел Настройки в качестве базы. Ваша настоящая проблема в том, что в этом случае сообщение об ошибке / уведомлении не работает.
Сначала вот что происходит, когда вы публикуете форму, настроенную с помощью API настроек:
- Данные размещаются на специальной
options.php
странице.
- Там данные очищаются / проверяются с помощью обратного вызова.
- Любые ошибки / уведомления, появившиеся во время очистки / проверки, собираются и сохраняются в переходном процессе.
- Вы перенаправлены обратно туда, откуда пришли .
Теперь, когда вы загружаете страницу администратора, она проверяет , относится ли эта страница к разделу «Настройки», и содержит ли этот options-head.php
файл крошечный файл, который занимается поиском и отображением уведомлений об ошибках.
Таким образом, единственное, что «не работает» на других страницах, - это последний шаг, который тривиально выполнить самостоятельно с обзором связанной функции выше (я, вероятно, углубился в подробности переходного процесса, вам это не понадобится для базового случая).
Немного поздно, но я только что прошел через это. Основываясь на коде OP, лучшее решение, которое я нашел, состоит в том, чтобы вставить этот код:
Это добавит отображение уведомления администратора на страницы администратора, отображаемые с помощью add_menu_page
источник
Просто добавив
в моей пользовательской странице меню функция $, казалось, прекрасно работала для отображения сообщений об ошибках на пользовательских страницах меню.
источник