Los mensajes actualizados de la API de configuración no se mostrarán si la página de administración personalizada no está conectada a add_options_page ()

8

Estuve jugando con la API de configuración y descubrí que los mensajes (para éxito o error) solo se muestran cuando una página de configuración está conectada al menú de WordPress a través de add_options_page (). Cualquier otra cosa no funcionará, por ejemplo. add_dashboard_page (). ¿Quisiera saber si esto es verdad? El código de muestra con el que probé es la respuesta que contiene la clase "RegisteredSettingsTest" en ¿Dónde se enganchan register_settings para la API de configuración cuando también queremos actualizar las opciones fuera de la API de configuración?

    
pregunta Jesse van Couten 01.07.2011 - 13:48

2 respuestas

20

Gracias Chip ( excelente tutorial de API de configuración ) y t31os ( gran fragmento de código para pruebas rápidas ) por tus sugerencias.

Investigué un poco más y descubrí que los mensajes predeterminados se pueden mostrar si me conecto a cualquier menú, pero solo si la función settings_errors () se llama.

Por ejemplo, modificando el código t31os de la siguiente manera:

<div class="wrap">
  <h2>Test</h2>
  <?php settings_errors(); ?>
  <form action="options.php" method="post">

Los mensajes de error personalizados también se pueden agregar llamando a la función add_settings_error () para mostrar el mensaje de éxito o error al especificar El parámetro $type como 'error' o 'actualizado'.

    
respondido por el Jesse van Couten 02.07.2011 - 08:24
9

Utilizo la integración de la API de configuración con mi tema, uso add_theme_page() y no tengo problemas para mostrar los avisos de administración.

Sospecho que es un problema con su código en lugar de una limitación de la API de configuración.

¿Puede publicar su código actual, por lo que podemos ayudarlo a resolver cualquier problema relacionado con el código?

EDIT

Es posible que deba enviar sus avisos de administración explícitamente. Por ejemplo, esto es lo que uso en la función de marcado de la página de configuración:

<?php if ( isset( $_GET['settings-updated'] ) ) {
    echo "<div class='updated'><p>Theme settings updated successfully.</p></div>";
} ?>

Supongo que también podrías hacer algo similar para avisos de error.

    
respondido por el Chip Bennett 01.07.2011 - 13:59

Lea otras preguntas en las etiquetas