En muchas ocasiones nos podemos encontrar que necesitamos tener un widget que nos muestre determinada información de nuestro wordpress por diversos motivos.
A continuación adjunto un código muy útil que podríamos decir que es una base para crear plugins que creen widgets con un par de parámetros de entrada de información.
<?php /* Plugin Name: Nombre del plugin Plugin URI: https://eduoliva.com Description: Descripción del plugin Author: Eduard Oliva Version: 1.1 Author URI: https://eduoliva.com */ add_action( 'widgets_init', 'Nuevo_Plugin' ); function Nuevo_Plugin(){ register_widget( 'Widget_Nuevo_Plugin' ); } class Widget_Nuevo_Plugin extends WP_Widget { public function __construct() { $widget_ops = array( 'classname' => 'widget_class', 'description' => __( 'Descripcion de la clase', 'DOMAIN' ) ); parent::__construct( 'widget_class', __( 'Nombre del Widget', 'DOMAIN' ), $widget_ops ); } public function widget( $args, $instance ) { extract( $args ); $title = apply_filters( 'widget_title', $instance['title'] ); $number_parameter = $instance['number_parameter']; echo $before_widget; if ( $title ) echo "<div align='center'>"; echo "<h3 class='title'><span>".$title."</span></h3>"; echo "</div>"; echo "Aquí el contenido de nuestro widget con un paremetro ".$number_parameter; echo $after_widget; } public function form( $instance ) { $defaults = array( 'title' => 'Título por defecto', 'number_parameter' => '10' ); $instance = wp_parse_args( (array) $instance, $defaults ); $title = $instance['title']; $number_parameter = $instance['number_parameter']; ?> <p><?php _e( 'Title', 'DOMAIN' ) ?>: <input class="widefat" name="<?php echo $this->get_field_name( 'title' ); ?>" type="text" value="<?php echo esc_attr( $title ); ?>" /> </p> <p><?php _e( 'Parámetro Numérico', 'DOMAIN' ) ?>: <input name="<?php echo $this->get_field_name( 'number_parameter' ); ?>" type="text" value="<?php echo esc_attr( $number_parameter ); ?>" size="2" maxlength="2" /> </p> <?php } public function update( $new_instance, $old_instance ) { $instance = $old_instance; $instance['title'] = sanitize_text_field( $new_instance['title'] ); $instance['number_parameter'] = absint( $new_instance['number_parameter'] ); return $instance; } }
Para que funcione deberemos crear una nueva carpeta dentro de nuestro directorio plugins con el nombre de nuestro plugin y dentro de esta carpeta en un archivo con el nombre_de_nuestro_plugin.php copiar el contenido que he adjuntado.
Una vez creada la carpeta y el archivo únicamente nos quedará subirlo todo a nuestro servidor y activar el plugin.
Una vez activo por último deberemos arrastrar el widget que se nos habrá creado a la zona que creamos conveniente de nuestro sidebar.
WordPress es muy potente y personalizable y con opciones como esta las posibilidades se multiplican pudiendo llegar hasta donde nos lleve nuestra imaginación.