Autonomía digital y tecnológica

Código e ideas para una internet distribuida

Cómo añadir campos a las secciones de Ajustes (Settings) del administrador de WordPress

Imago voragine.net

Para añadir campos suplementarios al apartado de Ajustes del administrador de WordPress podemos usar la Settings API. Primero tenemos que registrar el nuevo campo y luego añadirlo, usando las funciones register_setting() y add_settings_field() respectivamente.

En este caso, añadiremos el campo «Ciudad del blog» a la sección General de los Ajustes (Settings). El procedimiento habitual es incluir el código en el archivo functions.php del theme. Por ejemplo:

// Añadir un campo suplementario a la sección General de los Ajustes (Settings) del administrador:
$new_general_setting = new new_general_setting();

class new_general_setting {
        function new_general_setting() {
                add_filter( 'admin_init' , array( &$this , 'register_fields' ) );
        }
        function register_fields() {
                register_setting( 'general', 'ciudad', 'esc_attr' );
                add_settings_field('ciudad', '<label for="ciudad">Ciudad del blog</label>' , array(&$this, 'fields_html') , 'general' );
        }
        function fields_html() {
                $value = get_option( 'ciudad', '' );
                echo '<input type="text" id="ciudad" name="ciudad" value="' . $value . '" />';
        }
}

La función register_setting(), que registra el campo, tiene como primer parámetro la sección en la que se añadirá el nuevo campo, general en este caso. El segundo parámetro es el slug del nuevo campo. El tercero es la función que se encargará de dar el formato correcto al valor del nuevo campo para almacenarlo en la base de datos.

La función add_settings_field() añade el campo a la sección «General». Si quisieramos crear una nueva sección para nuestro campo, podemos usar previamente add_settings_section().

Para una información más completa sobre la Settings API de WordPress se puede consultar The WordPress Settings API en el blog de Konstantin Kovshenin.

Dejar un comentario

No hay comentarios en esta entrada.
*
*

 

No hay trackbacks