Johan de Bruin

Programación en php, tutorial de api wordpress y posicionamiento en buscadores seo.

Añadir opciones a un plugin wordpress

Consta de una variable para establecer un nombre de id para establecer las opciones en la base de datos, añadir la acción al hook del menu al construir el plugin, establecer como aparecerá en la pestaña las opcinones con add_options_page, y el código que mostrará y gestionará las opciones insertadas. Aquí un ejemplo básico de como quedaría:

<?php
class miPlugin()
{
	var $db_option = 'miPlugin_Options';
 
	function miPlugin()
	{
		//Línea para incluir el menú
		add_action('miMenu', array(&$this, 'admin_menu'));
	}
 
	function miMenu()
	{
		add_options_page('Opciones del plugin', 'Algun id', 8, basename(__FILE__), array(&$this, 'opciones'));
	}
 
	function opciones()
	{
		$options = $this->get_options();
 
		if (isset($_POST['submitted'])) {
		  check_admin_referer('nonce');
		  $options = array();
		  $options['a'] = $_POST['a'];
		  $options['b'] = $_POST['b'];
		  update_option($this->db_option, $options);
		}
		// Aquí establecemos algunas variables que usaremos en el form
		$action_url = $_SERVER['REQUEST_URI'];
		$a = $options['a'];
		$b = $options['b'];
		?>
 
       	<form name="SnazzyArchives" action="<?php echo $action_url ?>" method="post">
            <?php wp_nonce_field('nonce'); ?>
            <input type="checkbox" name="a"  <?php echo $a ?> /><label> Show Posts</label>  <br />
            <input type="checkbox" name="b"  <?php echo $b ?> /><label> Show Pages</label>  <br />
            <div><input type="submit" name="Submit" value="Update" /></div>
       	</form>
        <?php
	}
}
?>

Solo decir que que las opciones se obtienen con $options = $this->get_options(); y se establecen con update_option($this->db_option, $options); Además, sirve como parametro de seguridad para cercionarnos que se está empleando el formulario correcto. Esto luego se comprueba con check_admin_referer(‘nonce’);

One Response to “Añadir opciones a un plugin wordpress”

Leave a Response