• wordpress CMS主题:ssmay主题wordpress CMS主题:ssmay主题
  • 首页 > wordpress CMS主题制作 > wordpress CMS主题如何调用3个月内的热门文章排行榜

    wordpress CMS主题如何调用3个月内的热门文章排行榜

    作者: 分类:wordpress CMS主题制作 点击: 667 次
    wordpress CMS主题:ssmay主题

      作为一个网站的站长,有时候我们可能需要这样的一个功能:需要在首页或侧边栏展示网站的热门文章的排行榜。这种排行榜我们经常在一些门户网站看到过(如下图)。当然,在我们的wordpress CMS主题中我们同样可以实现这种排行榜功能,而且还可以进行时间限制,如:1年内热门文章排行榜、1个季度内热门文章排行榜、1个月的热门文章排行榜等。下面,就一起来看看wordpress主题是怎样实现排行榜功能的。

      wordpress CMS主题如何调用3个月内的热门文章排行榜

      第一步:为wordpress主题的文章添加记录浏览量功能

      如何记录wordpress文章的用户浏览量,这个在我们发表的前面的文章中就已经介绍过了。这里,再把它贴出来:

      //访问计数:必须 启用 wp_head();
      function record_visitors(){
      if(is_singular()){
      global $post;
      $post_ID = $post->ID;
      if($post_ID){
      $post_views = (int)get_post_meta($post_ID, 'views', true);
      if(!update_post_meta($post_ID, 'views', ($post_views+1))){
      add_post_meta($post_ID, 'views', 1, true);
      }
      }
      }
      }
      add_action('wp_head', 'record_visitors');

      注意:这段代码功能模块是添加到wp_head勾子里的,所以,我们要在wordpress主题怕header.php文件的<head>标签内容调用wp_head()函数。否则,功能失效。

      第二步:为wordpress主题添加文章排行榜功能函数。

      给wordpress添加热门文章排行榜功能,这个在网上有非常多的介绍。不过,大多都是介绍如何通过wp-postview插件来实现排行榜功能。这不是本文所要介绍的。本文要介绍的是通过纯代码来实现这种功能。代码如下:

      /// 函数作用:取得阅读最多的文章
      //$time=1 时间1个月
      function get_most_viewed_format($time=1,$limit=10, $mode = '', $term_id = 0) {
      global $wpdb, $post;
      $time = date("Y-m-d H:i:s",time()-$time*30*24*3600); //限制只显示最近3个月的文章
      $output = '';
      $mode = ($mode == '') ? 'post' : $mode;
      $type_sql = ($mode != 'both') ? "AND post_type='$mode'" : '';
      $term_sql = (is_array($term_id)) ? "AND $wpdb->term_taxonomy.term_id IN (" . join(',', $term_id) . ')' : ($term_id != 0 ? "AND $wpdb->term_taxonomy.term_id = $term_id" : '');
      $term_sql.= $term_id ? " AND $wpdb->term_taxonomy.taxonomy != 'link_category'" : '';
      $inr_join = $term_id ? "INNER JOIN $wpdb->term_relationships ON ($wpdb->posts.ID = $wpdb->term_relationships.object_id) INNER JOIN $wpdb->term_taxonomy ON ($wpdb->term_relationships.term_taxonomy_id = $wpdb->term_taxonomy.term_taxonomy_id)" : '';

      $most_viewed = $wpdb->get_results("SELECT ID, post_date, post_title, (meta_value+0) AS views FROM $wpdb->posts LEFT JOIN $wpdb->postmeta ON ($wpdb->posts.ID = $wpdb->postmeta.post_id) $inr_join WHERE post_status = 'publish' AND post_password = '' $term_sql $type_sql AND post_date>'$time' AND meta_key = 'views' GROUP BY ID ORDER BY views DESC LIMIT $limit");
      $aa = 1;
      if($most_viewed) {
      foreach ($most_viewed as $viewed) {
      if($aa<10){ $aa = '0'.$aa; }
      $post_ID = $viewed->ID;
      $post_views = number_format($viewed->views);
      $post_title = esc_attr($viewed->post_title);
      $get_permalink = esc_attr(get_permalink($post_ID));
      $output .= '<li><span>'.$aa.'</span> <a href='.$get_permalink.' class="title" title='.$post_title.'>'.$post_title.'</a></li>';
      $aa++;
      }
      }else{
      $output = "<li>N/A</li>\n";
      }
      echo $output;
      }

      上面的代码中,我为get_most_viewed_format()函数设置了1个时间限制参数和1个文章数量限制参数。这样,我们就可以调用一定时间内的固定数量的热门文章。把上面这段代码也在放到wordpress主题的functions.php文件中。

      第三步:在前台调用排行榜。

      上面2步,我们为wordpress主题实现了排行榜功能。这样,我们就可以在wordpress主题的前台页面调用这个get_most_viewed_format()函数来展示热门文章排行榜。示例如下:

      调用1年内的热门文章排行榜,文章数量20篇:

      get_most_viewed_format(12, 20);

      调用1个季度的热门文章排行榜,10篇:

      get_most_viewed_format(3, 10);

      通过上面的3步,我们就为我们的wordpress CMS主题添加了热门文章排行榜的功能,并且可以灵活发调用不同时间段内的热门文章排行榜,适合不同的需求。



      QQ二维码

    文章作者:高时银博客
    本文地址:http://wanlimm.com/77201807316390.html
    版权所有 © 转载时必须以链接形式注明作者和原始出处!

    上一篇:
    下一篇:
    wordpress CMS主题:ssmay主题

    或许你会感兴趣的文章:

    发表评论

    电子邮件地址不会被公开。 必填项已用*标注

    This site uses Akismet to reduce spam. Learn how your comment data is processed.