Hacer configurable un widget de panel de WordPress

Hace unas semanas vimos cómo agregar un metabox de panel RSS personalizado a la administración. Hoy, me gustaría mostrarles cómo agregar opciones configurables a este metabox del tablero.

Aquí está el resultado de lo que vamos a hacer:

make_a_widget_configurableLo primero que debe hacer es, obviamente, leer la primera parte de este tutorial para crear el metabox.

La función más importante de este tutorial es wp_add_dashboard_widget (). Es la función de WordPress que registra un widget de panel. Ya vimos que registrar el widget y la función que genera el widget en el tablero es bastante fácil, pero no habíamos cubierto el último parámetro de esta función. Básicamente, wp_add_dashboard_widget () tiene 4 parámetros:

$ widget_id
(entero) (obligatorio) un slug de identificación para su widget. Esto se utilizará como su clase css y su clave en la matriz de widgets.
Predeterminado: Ninguno

$ widget_name
(cadena) (obligatorio) este es el nombre que mostrará su widget en su encabezado.
Predeterminado: Ninguno

$ devolución de llamada
(cadena) (obligatorio) El nombre de una función que crea que mostrará el contenido real de su widget.
Predeterminado: Ninguno

$ control_callback
(cadena) (opcional) El nombre de una función que usted crea que manejará el envío de formularios de opciones de widget (configuración) y también mostrará los elementos del formulario.
Predeterminado: Ninguno

Como puede ver, el cuarto parámetro es el responsable de las opciones de “configurar”. Al completar este parámetro, le dice a WordPress que cargue una función específica para configurar el widget. Crea automáticamente un enlace de “configuración” en el título del metabox cuando colocas el cursor sobre él.

Paso 1: Registre la función Configurar opciones

Entonces, el primer paso es modificar el wp_add_dashboard_widget () llamar y agregar el nombre de las funciones de opciones de configuración en el último parámetro. Tu rc_mdm_register_widgets () funciones, debería convertirse en:

/**
 * Register all dashboard metaboxes
 *
 * @access      public
 * @since       1.0 
 * @return      void
*/

function rc_mdm_register_widgets() {
	global $wp_meta_boxes;
	
	wp_add_dashboard_widget('widget_custom_rss', __('My RSS Feeds', 'rc_mdm'), 'rc_mdm_create_my_rss_box', 'rc_mdm_configure_my_rss_box');
}
add_action('wp_dashboard_setup', 'rc_mdm_register_widgets');

Simplemente agregamos “rc_mdm_configure_my_rss_box” al último parámetro.

Paso 2: Cree la función Configurar opciones

Este paso no es complicado. Todo lo que tenemos que hacer es crear campos de formulario almacenados en una matriz. Para hacerlo, usaremos la opción update_option (). No necesitamos crear un formulario completo ya que WordPress lo crea para nosotros. Solo necesitamos registrar los campos. Un punto muy bueno para mencionar es que WordPress agrega automáticamente al formulario un nonce que hace que el formulario sea seguro y evita posibles problemas de seguridad. Aquí está el código de nuestra función rc_mdm_configure_my_rss_box () (¿recuerdas? Es el cuarto parámetro que definimos en wp_add_dashboard_widget ()).

/**
 * Creates the RSS metabox configuration settings
 *
 * @access      public
 * @since       1.0 
 * @return      void
*/
function rc_mdm_configure_my_rss_box( $widget_id ) {

	// Get widget options
	if ( !$rc_mdm_widget_options = get_option( 'rc_mdm_dashboard_widget_options' ) )
		$rc_mdm_widget_options = array();

	// Update widget options
	if ( 'POST' == $_SERVER['REQUEST_METHOD'] && isset($_POST['rc_mdm_widget_post']) ) {
		update_option( 'rc_mdm_dashboard_widget_options', $_POST['rc_mdm_widget'] );
	}
	
	// Retrieve feed URLs
	$url_1 = $rc_mdm_widget_options['url_1'];
	$url_2 = $rc_mdm_widget_options['url_2'];
	$url_3 = $rc_mdm_widget_options['url_3']; ?>

	

Ahora puede volver a cargar su panel de control, y si coloca el cursor en el metabox del widget, verá un enlace “configurar” que aparece en la parte superior derecha. Al hacer clic en él, se carga el formulario de opciones. Y al rellenar los campos y guardar las URL del feed se almacenan en nuestra tabla de opciones SQL.

Paso 3: Opciones de recuperación

El último paso es reemplazar las URL del feed que codificamos en la primera parte del tutorial. De la línea 14 a la 18 en rc_mdm_create_my_rss_box () agregamos dos URL. Simplemente reemplácelo por:

// My feeds list
if ( !$my_feeds = get_option( 'rc_mdm_dashboard_widget_options' ) )
    $my_feeds = array();

¡Y eso es! Logramos agregar opciones personalizadas a un widget de tablero de manera silenciosa y fácil.

Publicaciones relacionadas

Botón volver arriba