Crear Widget de WordPress

Un Widget de WordPress se compone de dos partes:

  • Una función que instancia al Widget.
  • Una clase para nuestro Widget, que extiende al objeto WP_Widget.

Incluir el archivo widget.php en la carpeta
wp-content/widget/widget.php.

 

(adsbygoogle = window.adsbygoogle || []).push({});

Contenido de widget.php:

<?php

/*
Plugin Name: Mi primer Widget mpw
Plugin URI: http://www.txtplano.blogspot.com.es/
Description: Crea un Widget para añadir a cualquier Sidebar.
Version: 1.0
Author: JorgeGL
Author URI: http://www.txtplano.blogspot.com.es/
*/

/* Función que instancia el Widget
mpw viene de “Mi Primer Widget”, el nombre de la función podéis cambiarlo como queráis
 */


function mpw_create_widget(){
include_once(plugin_dir_path( __FILE__ ).’/widget/widget.php’);
register_widget(‘mpw_widget’);
}
add_action(‘widgets_init’,’mpw_create_widget’);

/* Extendemos la clase WP_Widget */

class mpw_widget extends WP_Widget {
    function mpw_widget(){
        // Constructor del Widget.
        $widget_ops = array(‘classname’ => ‘mpw_widget’, ‘description’ => «Descripción de Mi primer Widget» );
        $this->WP_Widget(‘mpw_widget’, «Mi primer Widget», $widget_ops);
    }

    function widget($args,$instance){
// Contenido del Widget que se mostrará en la Sidebar

        echo $before_widget;    
        ?>
        <aside id=’mpw_widget’ class=’widget myp_widget’>
            <h3 class=’widget-title’>Mi Primer Widget</h3>
            <p><?=$instance[«mpw_texto»]?></p>
        </aside>
        <?php
        echo $after_widget;


}

function update($new_instance, $old_instance){
$instance = $old_instance;
$instance[«mpw_texto»] = strip_tags($new_instance[«mpw_texto»]);
// Repetimos esto para tantos campos como tengamos en el formulario.
return $instance;
}

function form($instance){
?>
<p>
<label for=»<?php echo $this->get_field_id(‘mpw_texto’); ?>»>Texto del Widget</label>
<input class=»widefat» id=»<?php echo $this->get_field_id(‘mpw_texto’); ?>» name=»<?php echo $this->get_field_name(‘mpw_texto’); ?>» type=»text» value=»<?php echo esc_attr($instance[«mpw_texto»]); ?>» />
</p>
<?php
}

}

?>

Este widget incluye un formulario para incluir texto desde el administrador de WordPress y mostrarlo directamente en la página.

Luego sólo tendremos que activar el plugin desde el gestor de plugins de WordPress. Hecho esto,
vamos a Apariencia > Widgets y lo arrastramos a la
Sidebar
que mejor nos convenga.

Crear un sidebar par nuestros widgets

Ahora tenemos la posibilidad de crear un sidebar personalizado para anclar nuestros widgets. Con la sidebar no nos referimos a la barra lateral, sino a una zona cualquiera de la plantilla. Debemos elegir dónde insertar el código: si en functions.php o bien en el widget en cuestión. Se recomienda esto último, para no tener que editar el código del theme.

<?php
function miplugin_register_sidebars(){
    register_sidebar(array(
        «name» => «Nombre de la Sidebar»,
        «id» => «id-unico-para-la-sidebar»,
        «descripcion» => «Descripción de la Sidebar»,
        «class» => «clase-del-elemento»,
        «before_widget» => «<li id=’%1$s’ class=’%2$s’>»,
        «after_widget» => «</li>»,
        «before_title» => «<h2 class=’titulodelwidget’>»,
        «after_title» => «</h2>»
    ));
}
add_action(‘widgets_init’,’miplugin_register_sidebars’);
?>

 

Fuentes de referencia:

http://codex.wordpress.org/es:Escribiendo_un_Plugin
https://codex.wordpress.org/Plugin_API/Action_Reference
http://www.codigonexo.com/blog/wordpress-programadores/crear-sidebars-en-wordpress/
http://www.domestika.org/es/forums/6-programacion-servidor/topics/94200-como-crear-tu-propio-sidebar-personalizado-en-wordpress
http://joanartes.com/blog/sidebar-wordpress/
https://wordpress.org/plugins/multiple-sidebars/installation/ — Plugin para crear sidebars desde el administrador de WordPress

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

*