当前位置:图集之家知识

代码实现wordpress浏览统计功能以及非插件调用wordpress最热文章代码

代码实现wordpress浏览统计功能以及非插件调用wordpress最热文章代码

内容

在WordPress中默认情况下是无法实现热门文章的,目前比较通用的实现热门文章有两种办法:一是实现使用wp-postviews插件的方式实现,但是这种方式在使用了缓存插件会失效。二是采用伪热门方法,什么是伪热门,就是不是通过靠点击数来实现,而是通过评论数来实现。显然这不是真正的热门文章列表。我们要通过点击数来提取热门文章列表。下面我们采用非插件非评论的方式来实现热门文章列表。

代码实现wordpress浏览统计功能:显示文章浏览数一:

在主题文件夹functions.php里 ? 前面添加如下代码实现文章点击次数功能

/* 访问计数 */

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');

/// 函数名称:post_views

/// 函数作用:取得文章的阅读次数

function post_views($before = '(点击 ', $after = ' 次)', $echo = 1)

{

global $post;

$post_ID = $post-ID;

$views = (int)get_post_meta($post_ID, 'views', true);

if ($echo) echo $before, number_format($views), $after;

else return $views;

}

然后,在文章内容模板single.php里面添加文章点击次数信息,把下面的代码添加到显示的地方就ok了

?phppost_views(,次);?

显示文章浏览数二:

首先也是在functions.php.php文件中在最后面 ? 的前面加入下面的代码:

functioncustom_the_views($post_id,$echo=true,$views='views'){$count_key='views';$count=get_post_meta($post_id,$count_key,true);if($count==''){delete_post_meta($post_id,$count_key);add_post_meta($post_id,$count_key,'0');$count='0';}if($echo)echonumber_format_i18n($count).$views;elsereturnnumber_format_i18n($count).$views;}functionset_post_views(){global$post;$post_id=$post-ID;$count_key='views';$count=get_post_meta($post_id,$count_key,true);if(is_single()||is_page()){if($count==''){delete_post_meta($post_id,$count_key);add_post_meta($post_id,$count_key,'0');}else{update_post_meta($post_id,$count_key,$count+1);}}}add_action('get_header','set_post_views');

代码放好后,保存,然后到主题前端位置添加调用

?phpif(function_exists('custom_the_views'))custom_the_views($post-ID);?非插件获取浏览数最多文章:

无论是wp-postviews插件还是网上的教程获取浏览数最多的文章都是使用sql语句来实现的,非插件其实也是从插件提取出来的,奇芳阁直接使用官方推荐的get_posts,省时省力,把下面的代码放到你想调用的地方,如果你想调整样式加上一些标签然后自己写点css就好了。

ul?php$args=array('posts_per_page'=5,//文章数'meta_key'='views','orderby'='meta_value_num','date_query'=array(array('after'='2monthago',//时间范围)));$postslist=get_posts($args);foreach($postslistas$post):setup_postdata($post);?liahref=?phpthe_permalink();??phpthe_title();?/aspan-?phpif(function_exists('custom_the_views'))custom_the_views($post-ID);//如果安装的是插件就换成插件的调用方法?/span/li?phpendforeach;wp_reset_postdata();?/ul

*特别声明:资源收集自网络或用户上传,本网站所提供的电子文本仅供参考,请以正式出版物为准。电子文本仅供个人标准化学习、研究使用,不得复制、发行、汇编、翻译或网络传播等。如有侵权,请联系我们处理。

相关