替换HotNews Pro主题热门文章调用函数

2011年10月1日02:49:48 232 已收录 5,991
摘要

  HotNews Pro 2.7版侧边TAB菜单中的本月排行及年度排行,是通过判断日志评论数多少调用显示,如果安装并已启用WP-PostViews统计插件,可以利用WP-PostViews浏览统计功能,调用显示浏览次数最多的日志。   其实这个调用热门文章的方法,在HotNews主题较早的版本中已采用,只不过当时用的是另一款统计插件WP-PostViews Plus。最近有童鞋问如何根据日志点击数调用热门文章,下面就以首页TAB菜单中的年度排行为例,教大家实现这一功能替换。

HotNews Pro 2.7版侧边TAB菜单中的本月排行及年度排行,是通过判断日志评论数多少调用显示,如果安装并已启用WP-PostViews统计插件,可以利用WP-PostViews浏览统计功能,调用显示浏览次数最多的日志。

其实这个调用热门文章的方法,在HotNews主题较早的版本中已采用,只不过当时用的是另一款统计插件WP-PostViews Plus。最近有童鞋问如何根据日志点击数调用热门文章,下面就以首页TAB菜单中的年度排行为例,教大家实现这一功能替换。

■  WP-PostViews插件默认调用浏览次数最多日志的函数为:

  1. <?php if (function_exists('get_most_viewed')): ?>   
  2.    <?php get_most_viewed(); ?>   
  3. <?php endif; ?>  

参考:http://wordpress.org/extend/plugins/wp-postviews/faq/

无时间段限制,不是我们想要的,但最新版的WP-PostViews插件确实无显示某时间段内日志的功能,不过早期版本中有相关的函数,下面是从1.11版本中复制出来的相关代码,加到WP-PostViews插件WP-PostViews.php中:

  1. ### Function: Get TimeSpan Most Viewed - Added by Paolo Tagliaferri (http://www.vortexmind.net - [email protected])   
  2. function get_timespan_most_viewed($mode = ''$limit = 10, $days = 7, $display = true) {   
  3.     global $wpdb$post;       
  4.     $limit_date = current_time('timestamp') - ($days*86400);    
  5.     $limit_date = date("Y-m-d H:i:s",$limit_date);     
  6.     $where = '';   
  7.     $temp = '';   
  8.     if(!empty($mode) && $mode != 'both') {   
  9.         $where = "post_type = '$mode'";   
  10.     } else {   
  11.         $where = '1=1';   
  12.     }   
  13.     $most_viewed = $wpdb->get_results("SELECT $wpdb->posts.*, (meta_value+0) AS views FROM $wpdb->posts LEFT JOIN $wpdb->postmeta ON $wpdb->postmeta.post_id = $wpdb->posts.ID WHERE post_date < '".current_time('mysql')."' AND post_date > '".$limit_date."' AND $where AND post_status = 'publish' AND meta_key = 'views' AND post_password = '' ORDER  BY views DESC LIMIT $limit");   
  14.     if($most_viewed) {   
  15.         foreach ($most_viewed as $post) {   
  16.             $post_title = get_the_title();   
  17.             $post_views = intval($post->views);   
  18.             $post_views = number_format($post_views);   
  19.             $temp .= "<li><a href=\"".get_permalink()."\">$post_title</a>".__('', 'wp-postviews')."</li>";   
  20.         }   
  21.     } else {   
  22.         $temp = '<li>'.__('N/A', 'wp-postviews').'</li>'."\n";   
  23.     }   
  24.     if($display) {   
  25.         echo $temp;   
  26.     } else {   
  27.         return $temp;   
  28.     }   
  29. }  

■  打开HotNewspro\includes目录中tab_h.php(该切换菜单只显示在首页,主题中还有另一个tab.php显示在其它页,替换方法类似),查找

  1. <?php simple_get_most_vieweds(); ?>

替换为:

  1. <?php if (function_exists('get_most_viewed')): ?>   
  2. <?php get_timespan_most_viewed('post',10,100, true, true); ?>   
  3. <?php endif; ?>  

其中:

post:显示单篇日志,若留空则显示单篇日志+页面,若填page则只显示页面。

10:显示的日志数量。

100:只显示100天内的日志,可酌情更改。

true:显示日志,若改为false则不显示文章。

false:不显示搜寻引擎机器人的查询次数,若改为true则全部显示

补充:调用某分类热门文章:

  1. <?php if (function_exists('get_most_viewed_category')): ?>    
  2. <?php get_most_viewed_category(3, 'post', 10); ?>    
  3. <?php endif; ?>  

其中:数字3为分类ID,数字10为日志篇数。

■  最后,还而要给显示的日志标题加上文字截断,以免由于文字较多时出现回行,影响页面美观,打开主题样式文件style.css,查找:

  1. .tab_latest ul li {   
  2.     width:212px;   
  3.     line-height:30px;   
  4.     border-bottom:1px dashed  #ccc;   
  5.     margin-bottom:-3px;   
  6.     }  

替换为:

  1. .tab_latest ul li {   
  2.     width:212px;   
  3.     line-height:30px;   
  4.     border-bottom:1px dashed  #ccc;   
  5.     margin-bottom:-3px;   
  6.     height:30px;   
  7.     overflowhidden;   
  8.     }  

如果要显示全部标题可以不加。

通过上面的函数替换,显示的热门排行可能更为合理一些。

weinxin
我的微信
分享交流WordPress经验与技巧,关注前端设计与网站制作。仅用于功能演示。
Begin主题购买
Begin主题购买

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

目前评论:232   其中:访客  188   博主  38   引用   2

    • www.kkshop.com.cn 0

      这个主题好,装了试试先

      • 爱在深邱 1

        调用某分类热门文章如何改成调用当前分类热门文章?

        • 租车大 2

          鸟哥,如何把博客一个分类做成瀑布流那样呀

          • 五星娱乐城 0

            很好很强大,用了这个主题

            • 怕贼偷 1

              首页最上面的热点推荐,设置无效啊,已经删了从上传的还是这样,pop.l7bz.com

              • 非常影院 1

                楼猪真的过分强大,也是通过别人的博客用了你的主题才知道楼猪的。仔细看过本站后,真的好佩服。

                • haitaoabc.com 1

                  鸟哥您好!我又遇到技术难题了。我本地搭建xampp写的文章通过wordpress自带的导入倒出工具进行了备份和恢复,但这些文章的postview计数器总是1,怎么也不变,其它文章的就正常。比如这篇文章:http://haitaoabc.com/xinshou/iherb/ 请问鸟哥应该怎么解决呢?跪谢啦!

                    • haitaoabc.com 1

                      @haitaoabc.com 而且因为我的这些导入的文章浏览量很大,所以导致热门文章调用那里每个文章会被重复调用4次,看上去好奇怪啊!

                    • 餐饮软件 2

                      还有代码哇 感觉好难啊

                      • 魔域 0

                        其实我是冲着图片里的两个美女来的

                        • 晓风 0

                          支持老兄~~~~全力支持!!!!这功能不错,按时间的!!
                          我之前研究弄的是没按时间的,遍历某分类下按点击排序的文章和其缩略图来着。看到你这个,我得改善改善了!!!不懂的地方,还请老兄多指点哦

                          • wkqsjr 0

                            博主 你目前在用的是什么代码高亮插件?

                            • 黑雨 2

                              高手。你好,近期热门出现了,有2-3个重复的页面显示,我看了下你的右侧的最新文章 也是有2个重复的,这个要怎么修复?

                                • 知更鸟 Admin

                                  @黑雨 文章需要有点击计数才能显示

                                • tusk 0

                                  while (have_posts()) : the_post();
                                  这里我要用流量次数排序 我要怎么做? 3.9版本貌似默认有浏览次数统计

                                • 来自外部的引用: 2

                                  • 替换HotNews Pro主题热门文章调用函数 | 一加一
                                  • 知更鸟主题知更鸟 | 富裕书聚友部落阁