Mời anh chị xem video hướng dẫn Viết widget top 10 bài viết được xem nhiều nhất dưới đây nha:
Code đây anh chị:
Copy code sau vào file functions.php:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
// hàm này dùng để set và update số lượt người xem bài viết. function setPostViews($postID) { $count_key = 'post_views_count'; $count = get_post_meta($postID, $count_key, true); if($count==''){ $count = 0; delete_post_meta($postID, $count_key); add_post_meta($postID, $count_key, '0'); }else{ $count++; // cộng đồn view update_post_meta($postID, $count_key, $count); // update count } } // hàm này dùng để lấy số người đã xem qua bài viết function getPostViews($postID){ $count_key = 'post_views_count'; $count = get_post_meta($postID, $count_key, true); if($count==''){ // Nếu như lượt xem không có delete_post_meta($postID, $count_key); add_post_meta($postID, $count_key, '0'); return "0"; // giá trị trả về bằng 0 } return $count; // Trả về giá trị lượt xem } |
Gọi function getPostViews($postID) vào file single.php:
Code widget show 10 bài viết được xem nhiều:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 |
<?php class bai_viet_xem_nhieu extends WP_Widget { function __construct(){ $widget_ops = array('description' => 'Tin đọc nhiều nhất'); $control_ops = array('width' => 300, 'height' => 300); parent::__construct(false,$name='Tin đọc nhiều nhất',$widget_ops,$control_ops); } function form($instance){ global $wpdb; //Defaults $instance = wp_parse_args( (array) $instance, array('title'=>'','numbershow'=>'') ); $title = htmlspecialchars($instance['title']); $numbershow = htmlspecialchars($instance['numbershow']); ?> <p><label for="<?php echo $this->get_field_id('title'); ?>">Title </label> <input type="text" name="<?php echo $this->get_field_name('title'); ?>" id="<?php echo $this->get_field_id('title'); ?>" style="width:100%" value="<?php echo $title; ?>"> </p> <p><label for="<?php echo $this->get_field_id('numbershow'); ?>">Show number: </label> <input type="text" name="<?php echo $this->get_field_name('numbershow'); ?>" id="<?php echo $this->get_field_id('numbershow'); ?>" style="width:100%" value="<?php echo $numbershow; ?>"> </p> <?php } /*Saves the settings. */ function update($new_instance, $old_instance){ $instance = $old_instance; $instance['title'] = stripslashes($new_instance['title']); $instance['numbershow'] = stripslashes($new_instance['numbershow']); return $instance; } function widget($args, $instance) { global $wpdb,$post, $product; extract($args); $title= empty($instance['title']) ? '' : $instance['title']; $numbershow= empty($instance['numbershow']) ? '' : $instance['numbershow']; echo $before_widget; if ( ! empty( $instance['title'] ) ) { echo $args['before_title'] . apply_filters( 'widget_title', $instance['title'] ). $args['after_title']; } ?> <ul> <?php $args = array( 'post_type' => 'post', 'posts_per_page' => $numbershow, 'post_status' => 'publish', 'meta_key' => 'post_views_count', 'orderby' => 'meta_value_num', 'order' => 'DESC' ); $wp_query = new WP_Query( $args ); if ( $wp_query->have_posts() ) : while ( $wp_query->have_posts() ) : $wp_query->the_post(); ?> <li> <a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>"><?php the_title(); ?></a><span class="getPostViews"><?php echo getPostViews(get_the_ID()); ?> lượt xem</span> </li> <?php endwhile; wp_reset_postdata(); endif; ?> </ul> <?php echo $after_widget; ?> <?php } }// end class register_widget('bai_viet_xem_nhieu'); ?> |
Mọi sự sao chép xin ghi rõ nguồn là fcwordpress.net
Chuyên trang về wordpress: hướng dẫn thiết kế theme, plugin, thủ thuật wordpress