Crear una página de ajustes con Settings API
La Settings API es el sistema oficial de WordPress para crear páginas de configuración. Gestiona automáticamente el guardado, la validación y los mensajes de error. Aunque tiene más código inicial que construir el formulario manualmente, es la forma correcta y más segura de hacerlo.
Casos de uso: página de ajustes de cualquier plugin, configuración de API keys, opciones globales del tema o plugin.
<?php
// Añadir página al menú
add_action( 'admin_menu', 'mi_plugin_menu' );
function mi_plugin_menu() {
add_options_page(
'Mi Plugin',
'Mi Plugin',
'manage_options',
'mi-plugin',
'mi_plugin_render_page'
);
}
// Registrar ajustes
add_action( 'admin_init', 'mi_plugin_settings' );
function mi_plugin_settings() {
register_setting( 'mi_plugin_group', 'mi_plugin_api_key', 'sanitize_text_field' );
add_settings_section( 'mi_seccion', 'Configuración', null, 'mi-plugin' );
add_settings_field(
'mi_api_key',
'API Key',
'mi_plugin_field_render',
'mi-plugin',
'mi_seccion'
);
}
function mi_plugin_field_render() {
$valor = get_option( 'mi_plugin_api_key', '' );
echo '';
}
// Renderizar página
function mi_plugin_render_page() {
?>
Mi Plugin
<?php
}
¿Qué hace cada parte?
- add_options_page(): añade un enlace bajo el menú «Ajustes» del admin. Los parámetros son: título de la página, texto del menú, capacidad requerida, slug único y función de renderizado.
- register_setting(): registra la opción indicando su grupo y el callback de sanitización. WordPress se encarga del guardado al hacer POST a
options.php. - add_settings_section(): crea un agrupador visual de campos. Una página puede tener varias secciones.
- add_settings_field(): conecta un campo visible con su función de renderizado y lo asigna a una sección.
- settings_fields(): genera los campos ocultos necesarios (nonce, action) para el guardado seguro.
- do_settings_sections(): renderiza todas las secciones y campos registrados para esta página.
- submit_button(): renderiza el botón de guardar con los estilos estándar de WordPress.
