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

Es tán fácil compartir...Pin on PinterestShare on FacebookShare on Google+Tweet about this on Twitter

Deja un comentario