it-swarm-es.com

¿Utiliza add_settings_field correctamente?

Estoy usando add_settings_field para agregar más detalles a un menú de configuración, pero no estoy seguro de cómo guardar la configuración o volver a llamarla en mi tema.

Aquí está el código hasta ahora

add_action('admin_init','vimeo_setup');

function vimeo_setup(){
add_settings_field('vimeo_id','Vimeo ID','display_vimeo','general');
}

function display_vimeo(){

 echo '<input  type="text" name="vimeo_id" id="vimeo_id" value="" size="30" style="width:85%" />';
 echo '<p><small> Enter your Vimeo ID here.</small></p>';
}
3
Mild Fuzz

La documentación para add_settings_field () dice lo siguiente:

DEBE registrar cualquier opción utilizada por esta función con register_setting () o no se guardarán y actualizado automáticamente.

4
Rarst

Se debe tener en cuenta que para agregar un campo de configuración debe registrar ese campo en una sección registrada.

Por lo tanto, debe usarse junto con su propia sección registrada o, alternativamente, puede ser un campo para agregar a una sección existente (como los que aparecen en las páginas de opciones).

Ver. http://codex.wordpress.org/Function_Reference/add_settings_section

Me atrevería a decir que estos no son realmente buenos cuando se trata de crear páginas de opciones de complementos o similares (opciones de tema), simplemente porque cada sección y campo registrados deben contar con una devolución de llamada (imagine cuántas devoluciones de llamada tendrá). Necesito si tienes 3-4 secciones, todas con 5-6 campos). Por supuesto, puede realizar devoluciones de llamadas dinámicas (por lo que solo necesita una devolución de llamada para una sección y otra para los campos) pasando parámetros ... (también deberá asegurarse de imprimir los números de estas secciones/campos). .

En lo personal, creo que es mejor simplemente registrar sus opciones/configuraciones e imprimir sus propias secciones/campos, y llamar a un único punto para cubrir todas sus configuraciones.

// 1: Reference, 2: Option name, 3: Callback function to sanitize the data
register_setting( 'reference_name', 'option_name', 'example_callback' );

Luego, donde quiera que imprima sus diversos campos de opciones, solo necesita imprimir una letra que cubra el lote.

settings_fields( 'reference_name' ); 

Si registró varias secciones y campos, también tendría que hacer esto para cada una de las secciones registradas.

do_settings_sections('your_section');

Realmente, el único aspecto importante de la configuración de opciones personalizadas es asegurarse de definir su propia devolución de llamada cuando registre la configuración y desinfecte adecuadamente esos datos (tercer parámetro para register_setting).

3
t31os