WordPress.org

Ready to get started?Download WordPress

Codex

Attention Interested in functions, hooks, classes, or methods? Check out the new WordPress Code Reference!

es:Referencia de Funciones/register setting

Está página está en la lista de páginas incompletas. Tú puedes ayudar a Codex mejorándola.
Nota: Diego AG 08:59, 2 January 2014 (UTC) crear los enlaces al castellano que faltan y luego eliminar los originales del inglés

Contents

Descripción

Registra una configuración y su retrollamada de limpieza (sanitization).

Esta es parte de la Settings API Api de configuración, que te permite generar automáticamente páginas de configuración de wp-admin mediante el registro de tus configuraciones y el uso de unas pocas retrollamadas para controlar la salida.

Esta función también puede ser usada para registrar configuraciones que serán mostradas en las páginas de configuración por defecto como medios (media) o general. Una vez que la configuración está registrada puedes añadirla a una sección existente con add_settings_field() add_settings_field() o crear una nueva sección con add_settings_section() add_settings_section() y añadirla a eso.

Uso

 <?php register_setting$grupo_de_opciones$nombre_de_opcion$retrollamada_de_limpieza ); ?> 

Parámetros

$grupo_de_opciones
(string) (required) Un nombre de grupo de opciones. Debe existir previamente a la llamada de register_setting (registrar configuración). Esto debe coincidir con el nombre de grupo en settings_fields()settings_fields()
Default: None
$nombre_de_opcion
(string) (required) El nombre de una option option para limpiar y guardar.
Default: None
$retrollamada_de_limpieza
(callback) (optional) Una función de retrollamada que limpia el valor de la opción.
Default: None

Valores de retorno

(void) 
Esta función no retorna ningún valor.

Ejemplo

function registrar_mi_configuración() {
	register_setting( 'mi_grupo_de_opciones0', 'mi_nombre_de_opción', 'intval' ); 
} 
add_action( 'admin_init', 'registrar_mi_configuración' );

Notas

  • Parece que los datos se pasan por la función de limpieza dos veces. Por ejemplo esto te dará una cadena de texto con dos exclamaciones: function agregar_exclamacion ($input) { return $input.'!'; }
    • Esto debería pasar solamente cuando la opción no esta aun en la tabla de wp_options. El tema es que esta técnica usada por options.php se recupere por la habilidad de update_option para detectar que una opción no existe aun y llamar subsecuentemente a (añadir opción) add_option. Siendo un problema el que update_option llama a la retrollamada de limpieza sanitize_option antes de add_option, la cual también llama a la retrollamada de limpieza sanitize_option.
  • El problema de "Error: página de opciones no encontrada." (incluyendo una solución y explicación):

El problema entonces es, que el filtro de lista blanca de opciones 'whitelist_options' no ha conseguido el índice correcto para tus datos. Se aplica en options.php#98 (WP 3.4).

Registrar configuración: register_settings() añade tus datos a la global $new_whitelist_options. Esto entonces se mezcla con la lista blanca global: global $whitelist_options dentro de filtro de actualización de opciones: option_update_filter() (resp. retrollamada(s) de add_option_whitelist()). Esas retrollamadas añaden tus datos a la nueva lista blanca de opciones global: global $new_whitelist_options con el grupo de opciones: $option_group como índice. Cuando te encuentres "Error: página de opciones no encontrada." "Error: options page not found." significa que tu índice no ha sido reconocido. Lo que confunde es que el primer argumento se usa como índice y como grupo_de_opciones: $options_group con nombre, cuando el registro verdadero de options.php#112 ocurre contra página de opciones: $options_page, lo cual es el sufijo de enganche: $hook_suffix, que consigues como valor de retorno @return de add_submenu_page().

En resumen,una solución fácil es hacer que $option_group coincida con $option_name.

Otra causa para este error es tener un valor inválido para el parámetro $page al llamar bien a add_settings_section( $id, $titulo, $funcion_de_retrollamada, $pagina ) o a add_settings_field( $id, $titulo, $funcion_de_retrollamada, $pagina, $seccion, $args ).

Truco: $pagina/tt> debería coincidir con <tt>$menu_slug de Referencia de Funcioes/add theme page.

Log de cambios

Desde: 2.7.0

Fichero fuente

register_setting() está ubicado en wp-admin/includes/plugin.php.

Recursos

Relacionado

Settings API: register_setting(), unregister_setting(), add_settings_field(), add_settings_section(), add_settings_error(), get_settings_errors(), settings_errors() Settings API: register_setting(), unregister_setting(), add_settings_field(), add_settings_section(), add_settings_error(), get_settings_errors(), settings_errors()

See also index of Function Reference and index of Template Tags.
Mira también el índice de referencia de funciones y el índice de etiquetas de plantilla.