Hay varios componentes para la creación de errores / avisos y el proceso de visualización:
add_settings_error()
llame para agregar un elemento a la pila ( $wp_settings_errors
variable global ).
settings_errors
transitoria que mantiene los errores para que sobrevivan se mueven de una página a otra.
settings_errors()
función get_settings_errors()
para recuperar errores de la memoria o transitorios y luego mostrarlos.
Estos funcionan de maravilla para la API de configuración, pero desafortunadamente no están configurados para uso genérico. Por otro lado, es trivial evitarlo.
Conéctate settings_errors()
a admin_notices
la página de tu complemento, pasa el código de error para que solo muestre tus cosas.
Guarde manualmente los errores en settings_errors
transitorios (solo inserte esa variable global en él).
Dado que get_settings_errors()
espera una sugerencia en los parámetros GET ( $_GET['settings-updated']
) de que debe verificar transitorios en lugar de memoria, puede proporcionar eso u obtener errores de transitorio usted mismo y guardarlos nuevamente en la variable global antes de su settings_errors()
llamada.
Actualizar
Estás convirtiendo esto en un desastre con múltiples preguntas, por lo que intentaré abordar tus inquietudes aquí.
Ajustes API hace el trabajo con las páginas de administración, que no utilizan la configuración de la sección de base. Su problema real es que, en ese caso, la notificación de errores / notificaciones no funciona.
Primero, esto es lo que sucede cuando publica un formulario, configurado con la API de configuración:
- Los datos se publican en una
options.php
página especial .
- Los datos se desinfectan / validan mediante la devolución de llamada.
- Cualquier error / aviso que surgió durante la desinfección / validación se recopila y guarda en forma transitoria.
- Se le redirige a donde sea que haya venido .
Ahora, cuando carga la página de administración, verifica si esta página pertenece a la sección Configuración y si ese caso incluye un pequeño options-head.php
archivo, que trata de recuperar y mostrar avisos de errores.
Entonces, lo único que "no funciona" en otras páginas es este último paso, que es trivial para hacer usted mismo con una descripción general de la función relacionada anterior (probablemente entré en demasiados detalles sobre transitorios, no los necesitará para el caso básico).
Un poco tarde, pero acabo de pasar por esto. Según el código del OP, la mejor solución que encontré es insertar este código:
Esto agregará la visualización del aviso de administrador a las páginas de administrador representadas usando add_menu_page
fuente
Simplemente agregando
La función $ de mi página de menú personalizada parecía funcionar bien para mostrar los mensajes de error en las páginas de menú personalizadas.
fuente