Mirar abajo


40683907114Desarrollamos 5352128402ideas creativas para personas exitosas. El futuro se acerca5511513278.......esta aquí5508100298

Sábado, 19 de Mayo 2012

Crear nuevos widgets y areas para widgets y plugins para temas en Wordpress

Crear nuevos widgets y areas para widgets y plugins para temas en Wordpress

por  Jose Heriberto Perez Magaña

Tutorial aplicado al tema de elegant themes Aggregate

Para crear nuevos widgets y ponerlos en la posición de nuestro tema en wordpress  primero que nada debemos de crear el archivo como se llame nuestro widget

Ejemplo: publicidad-arriba.php

Y el código que este llevara ya que mis necesidades por ahora es solo colocar nuevo código html, para colocar imágenes de publicidad o banners en flash entonces por eso utilizo este código y solo acepto código html y sin título para que no aparezca nada en dicha posición más que el código de la publicidad:


Y lo debemos de guardar en la dirección que lo esté guardando nuestro tema que utilicemos en ese momento para ello en mi caso que estoy utilizando el tema de agregate de elegant themes entonces lo voy a colocar en \wp-content\themes\Aggregate\includes\widgets\publicidad-arriba.php y el código de dicho widgets es el siguiente:


/*widget realizado por jose Heriberto perez magaña*/

/*visita para mas información www.micompu.com.mx*/


<?php class PublicidadArribaWidget extends WP_Widget

{

    function PublicidadArribaWidget(){

                               $widget_ops = array( 'description' => 'Para colocar la publicidad arriba' );

                               $control_ops = array( 'width' => 400, 'height' => 300 );

                               parent::WP_Widget( false, $name='Publicidad Arriba Widget', $widget_ops, $control_ops );

    }

/* Displays the Widget in the front-end */

    function widget( $args, $instance ){

                               extract($args);                                

                               $aboutText = empty( $instance['aboutText'] ) ? '' : $instance['aboutText'];

                               echo $before_widget;

        echo( $aboutText );?>

                <?php

                               echo $after_widget;

                }

     /*Saves the settings. */

    function update( $new_instance, $old_instance ){

                               $instance = $old_instance;

                               $instance['title'] = strip_tags( $new_instance['title'] );

                               $instance['imagePath'] = esc_url( $new_instance['imagePath'] );

                               $instance['aboutText'] = current_user_can('unfiltered_html') ? $new_instance['aboutText'] : stripslashes( wp_filter_post_kses( addslashes($new_instance['aboutText']) ) );

                               return $instance;

                }


     /*Creates the form for the widget in the back-end. */

    function form( $instance ){

                               //Defaults

                               $instance = wp_parse_args( (array) $instance, array( 'title'=>'About Me', 'imagePath'=>'', 'aboutText'=>'' ) );

                               $title = esc_attr( $instance['title'] );

                               $imagePath = esc_url( $instance['imagePath'] );

                               $aboutText = esc_textarea( $instance['aboutText'] );

                               # Title

                               echo '<p><label for="' . $this->get_field_id('title') . '">' . 'Title:' . '</label><input id="' . $this->get_field_id('title') . '" name="' . $this->get_field_name('title') . '" type="text" value="' . $title . '" /></p>';

                               # Image

                               echo '<p><label for="' . $this->get_field_id('imagePath') . '">' . 'Image:' . '</label><textarea cols="20" rows="2" id="' . $this->get_field_id('imagePath') . '" name="' . $this->get_field_name('imagePath') . '" >'. $imagePath .'</textarea></p>';

                               # About Text

                               echo '<p><label for="' . $this->get_field_id('aboutText') . '">' . 'Text:' . '</label><textarea cols="20" rows="5" id="' . $this->get_field_id('aboutText') . '" name="' . $this->get_field_name('aboutText') . '" >'. $aboutText .'</textarea></p>';

                }

}// fin del widget de publicidad arriba class


function PublicidadArribaWidgetInit() {

                register_widget('PublicidadArribaWidget');

}


add_action('widgets_init', 'PublicidadArribaWidgetInit'); ?>

En caso de que ustedes quieran crear un widgets con funciones más avanzadas pueden basarse en otros widgets ya escritos y personalizarlos a su gusto o buscar directamente en la página de codex de wordpress para ver más ejemplos y todos los parámetros que pueden utilizar para sus widgets

Y para que pueda aparecer en nuestro tema en el back end para primero visualizar que ya esta disponible entonces lo primero que hacemos es agregarlo también en el archivo widgets.php ubicado en la siguiente dirección:wp-content\themes\Aggregate\includes\ widgets.php


Y quedaría de la siguiente forma el archivo widgets.php final


<?php get_template_part('includes/widgets/widget-about');

get_template_part('includes/widgets/widget-adsense');

get_template_part('includes/widgets/widget-ads');

get_template_part('includes/widgets/widget-fromblog');

get_template_part('includes/widgets/widget-recentvideos');

get_template_part('includes/widgets/widget-photostream');

get_template_part('includes/widgets/widget-popular');

get_template_part('includes/widgets/widget-728');

get_template_part('includes/widgets/publicidad-arriba');

?>

Después si refrescamos en el área de widgets podremos visualizar que podemos utilizar nuestro nuevo widget para poder colocarlos en el sidebar o en una de las áreas de widgets que tiene nuestro tema.

Ahora bien como en mi caso no quiero que aparezca la publicidad en el sidebar si no que quiero que aparezca en la parte superior antes del menú superior (El primero) ya que este tema cuenta con tres, entonces ahora lo que debemos de hacer es crear una nueva área para widgets y plugins.

Para crear una nueva área para widgets y plugins dentro de nuestro tema yo lo voy a declarar en el archivo sidebars.php en mi caso ubicado en: \wp-content\themes\Aggregate\includes\functions\ sidebars.php

En donde se declaran todas las áreas para widgets y plugins en mi caso voy a duplicar uno existente y lo voy a modificar para que quede de la siguiente manera:

register_sidebar( array(

                               'name' => 'Publicidad Arriba',

                               'id' => 'PublicidadArriba',

                               'before_widget' => '',

                               'after_widget' => '',

                               'before_title' => '',

                               'after_title' => '',

                ) );

Si queremos que aparezca antes de todos los widgets pues nomas nos aseguramos de que sea el primer widget declarado en donde empieza el archivo.


<?php

if ( function_exists('register_sidebar') ) {


Después de eso si refrescamos podremos visualizar en nuestro panel de administrador nuestra nueva área para widgets y plugins en el cual podemos crear y meter lo que así quiéranos.

Ahora falta definirlo para que aparezca en nuestro tema en el front end o lo que es lo que el usuario ve finalmente que es lo que nos interesa para eso vamos a buscar en nuestro archivo donde observemos que se utilizan los div principales de maquetación de la plantilla, para mi caso se encuentra todo definido en el archivo header.php ubicado en \wp-content\themes\Aggregate\header.php en el cual podremos hacer escribir texto plano en cualquier ubicación donde veamos divs e ir ubicando en cual lugar queremos ubicar nuestro nueva area para widgets, en mi caso como l oqueiro colocar arriba del primer menú entonces la ubicación es despues del body pero antes del top header algo asi luce:


<body <?php body_class(); ?>>

Aqui colocare mi codigo para que aparezca el area de widget que me interesa

                <?php do_action('et_header_top'); ?>

                <div id="top-header">

Ahora bien para pintar el área de widget que creamos en el archivo sidebars.php vamos a tomar lo que pusimos en name en mi caso queda el archivo header.php de la siguiente manera

<!—todo el demás código- - >

<body <?php body_class(); ?>>

<div>

       <?php if (!function_exists('dynamic_sidebar') || !dynamic_sidebar('Publicidad Arriba')) : ?>

ANUNCIATE EN MONITOR UNIVERSITARIO, CONTACTANOS...

<?php endif; ?>

        </div>

                <?php do_action('et_header_top'); ?>

                <div id="top-header">

<!—todo el demás código- - >

Pues eso es todo en caso de que tengas dudas o comentarios realizalos en la parte de abajo o enviame un correo a la direccion de Esta dirección electrónica esta protegida contra spam bots. Necesita activar JavaScript para visualizarla , saludos

A continuación se muestra en video

Ultima modificacion el Miércoles, 08 de Febrero de 2012 18:11
Jose Heriberto Perez Magaña

Jose Heriberto Perez Magaña

1 Suscritos

Suscripción a Blog

Recibe notificaciones por correo electrónico de nuevos articulos agregados.
1 Suscritos

Suscripción a comentarios

Recibe notificaciones a tu correo electronico de nuevos comentarios Agregados.

Dejar comentario

Asegúrese de introducir la información (*) requiere que se indique. Básicos del código HTML es permitido.
Esta área es solo para comentarios si deseas cotizar o contratar haz clic aquí.

Más Información...

logo

Bienvenido para nosotros es un placer tenerte aquí te invitamos a conocer nuestros diferentes productos y servicios.

Estamos convencidos que la mejor recomendación con nuestros clientes es la calidad de nuestro trabajo pero queriendo llevar más allá nuestro servicio ofrecemos precios muy competitivos.