• wordpress Articulos categoria widgets «antiguas y nuevo» como?

    <?php
    /*
    Plugin Name: Articulos por categoria Firmas – Widget
    Plugin URI: http://www.candemasjor.net
    Description: Muestra los articulos de una categoria. Basado en el Widget de James Lao Category Posts
    Author: Candemasjor.
    Version: 1.0
    Author URI: http://www.candemasjor.net
    */

    // Register thumbnail sizes.
    if ( function_exists(‘add_image_size’) )
    {
    $sizes = get_option(‘sw_arti_cat_thumb_sizes’);
    if ( $sizes )
    {
    foreach ( $sizes as $id=>$size )
    add_image_size( ‘cat_post_thumb_size’ . $id, $size[0], $size[1], true );
    }
    }

    class ArticulosCategoriafirmas extends WP_Widget {

    function ArticulosCategoriafirmas() {
    parent::WP_Widget(false, $name=’Articulos categoria firmas’);
    }

    /**
    * Displays category posts widget on blog.
    */
    function widget($args, $instance) {
    global $post;
    $post_old = $post; // Save the post object.

    extract( $args );

    $sizes = get_option(‘sw_arti_cat_thumb_sizes’);

    // If not title, use the name of the category.
    if( !$instance[«title»] ) {
    $category_info = get_category($instance[«cat»]);
    $instance[«title»] = $category_info->name;
    }

    $valid_sort_orders = array(‘date’, ‘title’, ‘comment_count’, ‘random’);
    if ( in_array($instance[‘sort_by’], $valid_sort_orders) ) {
    $sort_by = $instance[‘sort_by’];
    $sort_order = (bool) $instance[‘asc_sort_order’] ? ‘ASC’ : ‘DESC’;
    } else {
    // by default, display latest first
    $sort_by = ‘date’;
    $sort_order = ‘DESC’;
    }

    // Get array of post info.
    $cat_posts = new WP_Query(
    «showposts=» . $instance[«num»] .
    «&cat=» . $instance[«cat»] .
    «&orderby=» . $sort_by .
    «&order=» . $sort_order
    );

    // Excerpt length filter
    $new_excerpt_length = create_function(‘$length’, «return » . $instance[«excerpt_length»] . «;»);
    if ( $instance[«excerpt_length»] > 0 )
    add_filter(‘excerpt_length’, $new_excerpt_length);

    echo $before_widget;

    // Widget title
    echo $before_title;
    if( $instance[«title_link»] )
    echo ‘‘ . $instance[«title»] . ‘‘;
    else
    echo $instance[«title»];
    echo $after_title;

    // Post list
    echo »

      \n»;

    while ( $cat_posts->have_posts() )
    {
    $cat_posts->the_post();
    $author = get_userdata(get_the_author_id());
    ?>
    <li class=»cat-post-item»>

    <?php if ( $instance[‘author-bio-box’] ) : ?>
    <?php the_author_meta(‘description’); ?>
    <?php endif; ?>

    » rel=»bookmark» title=»Enlace a <?php the_title_attribute(); ?>»><?php the_title(); ?>

    <?php if ( $instance[‘author_avatar’] ) : ?>
    <p class=»author-avatar»><?= get_avatar($author->user_email, 64) ?></p>
    <?php endif; ?>

    <?php
    if (
    function_exists(‘the_post_thumbnail’) &&
    current_theme_supports(«post-thumbnails») &&
    $instance[«thumb»] &&
    has_post_thumbnail()
    ) :
    ?>
    » title=»<?php the_title_attribute(); ?>»>
    <?php the_post_thumbnail( ‘cat_post_thumb_size’.$this->id ); ?>

    <?php endif; ?>

    <?php if ( $instance[‘date’] ) : ?>
    <p class=»post-date»><?php the_time(«j M Y»); ?></p>
    <?php endif; ?>

    <?php if ( $instance[‘excerpt’] ) : ?>
    <?php the_excerpt(); ?>
    <?php endif; ?>

    <?php if ( $instance[‘author_name’] ) : ?>
    ID, $author->user_nicename) ?>»><?= $author->first_name . ‘ ‘ . $author->last_name ?>

    <?php endif; ?>

    <?php if ( $instance[‘comment_num’] ) : ?>
    <p class=»comment-num»>(<?php comments_number(); ?>)</p>
    <?php endif; ?>

    <?php
    } { ?>

    <div class=»navigation»><p><?php posts_nav_link(); ?></p></div>
    <? }
    echo $after_widget;

    remove_filter(‘excerpt_length’, $new_excerpt_length);

    $post = $post_old; // Restore the post object.
    }

    /**
    * Form processing… Dead simple.
    */
    function update($new_instance, $old_instance) {
    /**
    * Save the thumbnail dimensions outside so we can
    * register the sizes easily. We have to do this
    * because the sizes must registered beforehand
    * in order for WP to hard crop images (this in
    * turn is because WP only hard crops on upload).
    * The code inside the widget is executed only when
    * the widget is shown so we register the sizes
    * outside of the widget class.
    */
    if ( function_exists(‘the_post_thumbnail’) )
    {
    $sizes = get_option(‘sw_arti_cat_thumb_sizes’);
    if ( !$sizes ) $sizes = array();
    $sizes[$this->id] = array($new_instance[‘thumb_w’], $new_instance[‘thumb_h’]);
    update_option(‘sw_arti_cat_thumb_sizes’, $sizes);
    }

    return $new_instance;
    }

    /**
    * The configuration form.
    */
    function form($instance) {
    ?>
    <p>
    <label for=»<?php echo $this->get_field_id(«title»); ?>»>
    <?php _e( ‘Title’ ); ?>:
    <input class=»widefat» id=»<?php echo $this->get_field_id(«title»); ?>» name=»<?php echo $this->get_field_name(«title»); ?>» type=»text» value=»<?php echo esc_attr($instance[«title»]); ?>» />
    </label>
    </p>

    <p>
    <label>
    <?php _e( ‘Category’ ); ?>:
    <?php wp_dropdown_categories( array( ‘name’ => $this->get_field_name(«cat»), ‘selected’ => $instance[«cat»] ) ); ?>
    </label>
    </p>

    <p>
    <label for=»<?php echo $this->get_field_id(«num»); ?>»>
    <?php _e(‘Number of posts to show’); ?>:
    <input style=»text-align: center;» id=»<?php echo $this->get_field_id(«num»); ?>» name=»<?php echo $this->get_field_name(«num»); ?>» type=»text» value=»<?php echo absint($instance[«num»]); ?>» size=’3′ />
    </label>
    </p>

    <p>
    <label for=»<?php echo $this->get_field_id(«sort_by»); ?>»>
    <?php _e(‘Sort by’); ?>:
    <select id=»<?php echo $this->get_field_id(«sort_by»); ?>» name=»<?php echo $this->get_field_name(«sort_by»); ?>»>
    <option value=»date»<?php selected( $instance[«sort_by»], «date» ); ?>>Date</option>
    <option value=»title»<?php selected( $instance[«sort_by»], «title» ); ?>>Title</option>
    <option value=»comment_count»<?php selected( $instance[«sort_by»], «comment_count» ); ?>>Number of comments</option>
    <option value=»random»<?php selected( $instance[«sort_by»], «random» ); ?>>Random</option>
    </select>
    </label>
    </p>

    <p>
    <label for=»<?php echo $this->get_field_id(«asc_sort_order»); ?>»>
    <input type=»checkbox» class=»checkbox»
    id=»<?php echo $this->get_field_id(«asc_sort_order»); ?>»
    name=»<?php echo $this->get_field_name(«asc_sort_order»); ?>»
    <?php checked( (bool) $instance[«asc_sort_order»], true ); ?> />
    <?php _e( ‘Reverse sort order (ascending)’ ); ?>
    </label>
    </p>

    <p>
    <label for=»<?php echo $this->get_field_id(«title_link»); ?>»>
    <input type=»checkbox» class=»checkbox» id=»<?php echo $this->get_field_id(«title_link»); ?>» name=»<?php echo $this->get_field_name(«title_link»); ?>»<?php checked( (bool) $instance[«title_link»], true ); ?> />
    <?php _e( ‘Make widget title link’ ); ?>
    </label>
    </p>

    <p>
    <label for=»<?php echo $this->get_field_id(«excerpt»); ?>»>
    <input type=»checkbox» class=»checkbox» id=»<?php echo $this->get_field_id(«excerpt»); ?>» name=»<?php echo $this->get_field_name(«excerpt»); ?>»<?php checked( (bool) $instance[«excerpt»], true ); ?> />
    <?php _e( ‘Show post excerpt’ ); ?>
    </label>
    </p>

    <p>
    <label for=»<?php echo $this->get_field_id(«author-bio-box»); ?>»>
    <input type=»checkbox» class=»checkbox» id=»<?php echo $this->get_field_id(«author-bio-box»); ?>» name=»<?php echo $this->get_field_name(«author-bio-box»); ?>»<?php checked( (bool) $instance[«author-bio-box»], true ); ?> />
    <?php _e( ‘Show author box’ ); ?>
    </label>
    </p>

    <p>
    <label for=»<?php echo $this->get_field_id(«author_avatar»); ?>»>
    <input type=»checkbox» class=»checkbox» id=»<?php echo $this->get_field_id(«author_avatar»); ?>» name=»<?php echo $this->get_field_name(«author_avatar»); ?>»<?php checked( (bool) $instance[«author_avatar»], true ); ?> />
    <?php _e( ‘Show author avatar’ ); ?>
    </label>
    </p>

    <p>
    <label for=»<?php echo $this->get_field_id(«author_name»); ?>»>
    <input type=»checkbox» class=»checkbox» id=»<?php echo $this->get_field_id(«author_name»); ?>» name=»<?php echo $this->get_field_name(«author_name»); ?>»<?php checked( (bool) $instance[«author_name»], true ); ?> />
    <?php _e( ‘Show author name’ ); ?>
    </label>
    </p>

    <p>
    <label for=»<?php echo $this->get_field_id(«excerpt_length»); ?>»>
    <?php _e( ‘Excerpt length (in words):’ ); ?>
    </label>
    <input style=»text-align: center;» type=»text» id=»<?php echo $this->get_field_id(«excerpt_length»); ?>» name=»<?php echo $this->get_field_name(«excerpt_length»); ?>» value=»<?php echo $instance[«excerpt_length»]; ?>» size=»3″ />
    </p>

    <p>
    <label for=»<?php echo $this->get_field_id(«comment_num»); ?>»>
    <input type=»checkbox» class=»checkbox» id=»<?php echo $this->get_field_id(«comment_num»); ?>» name=»<?php echo $this->get_field_name(«comment_num»); ?>»<?php checked( (bool) $instance[«comment_num»], true ); ?> />
    <?php _e( ‘Show number of comments’ ); ?>
    </label>
    </p>

    <p>
    <label for=»<?php echo $this->get_field_id(«date»); ?>»>
    <input type=»checkbox» class=»checkbox» id=»<?php echo $this->get_field_id(«date»); ?>» name=»<?php echo $this->get_field_name(«date»); ?>»<?php checked( (bool) $instance[«date»], true ); ?> />
    <?php _e( ‘Show post date’ ); ?>
    </label>
    </p>

    <?php if ( function_exists(‘the_post_thumbnail’) && current_theme_supports(«post-thumbnails») ) : ?>
    <p>
    <label for=»<?php echo $this->get_field_id(«thumb»); ?>»>
    <input type=»checkbox» class=»checkbox» id=»<?php echo $this->get_field_id(«thumb»); ?>» name=»<?php echo $this->get_field_name(«thumb»); ?>»<?php checked( (bool) $instance[«thumb»], true ); ?> />
    <?php _e( ‘Show post thumbnail’ ); ?>
    </label>
    </p>
    <p>
    <label>
    <?php _e(‘Thumbnail dimensions’); ?>:
    <label for=»<?php echo $this->get_field_id(«thumb_w»); ?>»>
    W: <input class=»widefat» style=»width:40%;» type=»text» id=»<?php echo $this->get_field_id(«thumb_w»); ?>» name=»<?php echo $this->get_field_name(«thumb_w»); ?>» value=»<?php echo $instance[«thumb_w»]; ?>» />
    </label>

    <label for=»<?php echo $this->get_field_id(«thumb_h»); ?>»>
    H: <input class=»widefat» style=»width:40%;» type=»text» id=»<?php echo $this->get_field_id(«thumb_h»); ?>» name=»<?php echo $this->get_field_name(«thumb_h»); ?>» value=»<?php echo $instance[«thumb_h»]; ?>» />
    </label>
    </label>
    </p>
    <?php endif; ?>

    <?php

    }

    }

    add_action( ‘widgets_init’, create_function(», ‘return register_widget(«ArticulosCategoriafirmas»);’) );

    ?>

  • El debate ‘Articulos categoria widgets Entradas más antiguas’ está cerrado a nuevas respuestas.