WordPress 文章浏览次数与点击排行榜的例子

在一小时内刷新文章不会多次统计,只会被算作一次访问,把下面的代码复制粘贴到主题的 functions.php 里面:

 代码如下 复制代码
/***** Postviews *****/
function record_visitors(){
if (is_singular()) {
global $post;
$post_ID = $post->ID;
if($post_ID) {
if(isset($_COOKIE['views'.$post_id.COOKIEHASH]) && $_COOKIE['views'.$post_id.COOKIEHASH] == ’1′)return;
$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);
}
setcookie(‘views’.$post_id.COOKIEHASH,’1′,time() + 3600,COOKIEPATH,COOKIE_DOMAIN);//设置时间间隔
}}}
add_action(‘wp_head’, ‘record_visitors’);
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;
}

在需要的位置用下面的代码调用

 代码如下 复制代码
< ?php if (function_exists(‘post_views’)) post_views(); ?>

然后是浏览次数排行榜,参考了WP-Postviews 插件源代码,可以设置限定近期一段时间内的文章的浏览次数排行,更为实用。所以这个相当不错的插件真的可以丢掉了。

添加到 functions.php 里

 代码如下 复制代码

/***** Most Viewed  *****/
function most_viewed($limit = 10) {
global $wpdb, $post;
$output = ”;
$most_viewed = $wpdb->get_results(“SELECT DISTINCT $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 > ‘” . date(‘Y-m-d’, strtotime(‘-100 days’)) . “‘ AND post_type =’post’ AND post_status = ‘publish’ AND meta_key = ‘views’ AND post_password = ” ORDER BY views DESC LIMIT $limit”);//设置近100天内文章的排行榜
if($most_viewed) {
foreach ($most_viewed as $post) {
$output .= “\n<li><a href= \”".get_permalink($post->ID).”\” rel=\”bookmark\” title=\”".$post->post_title.” (“.$post->views.”+)\” >”. $post->post_title.” (“.$post->views.”+)</a></li>”;
}
echo $output;
}}

在页面适当的地方调用代码如下,括号内参数为显示数目

 

 代码如下 复制代码
< ?php if (function_exists(‘most_viewed’)) most_viewed(10); ?>
时间: 2024-10-31 09:13:17

WordPress 文章浏览次数与点击排行榜的例子的相关文章

WordPress获得文章浏览次数及获取浏览次数最多的文章

纯代码统计文章浏览次数 1.在主题的 functions.php文件的最后一个 ?> 前面添加下面的代码:  代码如下 复制代码 function record_visitors()   {       if (is_singular())       {         global $post;         $post_ID = $post->ID;         if($post_ID)         {             $post_views = (int)get_po

wordpress文章浏览量的实现方法

wordpress不用插件来实现功能方法: 第一种:找到functions模板,加入以下代码:  代码如下 复制代码 function getPostViews($postID){ $count_key = 'post_views_count'; $count = get_post_meta($postID, $count_key, true); if($count=="){ delete_post_meta($postID, $count_key); add_post_meta($postID

wordpress可防刷新文章浏览次数统计代码

第一步 按照惯例,把以下代码扔到functions.php里  代码如下 复制代码 /***********文章统计*********/  function process_postviews() {       global $user_ID, $post;       if(check_cookie($post))           return;       if(is_int($post)) {           $post = get_post($post);       }  

Wordpress利用Ajax实现文章浏览次数统计代码

但实现一个这么简单的功能还得用一个插件实在是不划算,折腾了下,弄出一个可以支持缓存的代码,同样也是使用 Ajax 首先是代码:  代码如下 复制代码 function Bing_statistics_visitors( $cache = false ){  global $post;  $id = $post->ID;  if( $cache ) $id = $_GET['id'];  if( ( !is_singular() && !$cache ) || !$id ) retur

php+mysql文章浏览次数统计及发布时间

一个网页能显示出"文件上传时间"和"浏览人数",不仅是文章历史的纪录,也能反映出该文章的受众欢迎度."文件上传时间"和"浏览人数"记录方法肯定很多,笔者根据自己的理解用php+mysql写了一个,不知代码够不够优化,但使用起来感觉不错,没有问题,今写出来和大家一起分享. 思路 1.文章上传时先在数据库中写入"网页地址"."上传时间time()"和"计数起点0". 2.

静态页面更新文章浏览次数代码

<% DB="database.mdb" path=Server.MapPath(DB) set conn=server.createobject("adodb.Connection") connstr="provider=Microsoft.Jet.OLEDB.4.0;Data Source="&path conn.Open connstr Set rs=server.CreateObject("adodb.record

asp实现静态页面浏览次数统计代码

在静态的html页面中要实现文章浏览次数的统计,可以进行js来调用asp教程文件带参数来实现,下面是我写的一款asp实现静态页面点击次数的代码. <% dim conn,connstr,rs connstr = "provider=microsoft.jet.oledb.4.0;data source=" & server.mappath(dbdns & syssitedbpath) call openconn() set rs = server.createob

WordPress文章列表添加自定义字段方法

我查看了wp-postviews插件的代码,发现是这两个函数起的作用:  代码如下 复制代码 ### Function Show Post Views Column in WP-Admin add_action('manage_posts_custom_column', 'add_postviews_column_content'); add_filter('manage_posts_columns', 'add_postviews_column'); add_action('manage_pa

WordPress文章在新窗口打开所有链接

在新窗口打开WordPress文章中的链接,有助于提高访客体验,为什么这么说呢?假设你在看文章的过程中,想浏览文章中提到的另一篇文章,但是现在这篇文章你还没有看完,没想到一点击链接,浏览器就切换到了新文章,要看刚才的文章,还得后退,是不是有点烦? 虽然有时候点击鼠标中键(滚轮)可以使链接在新窗口打开,或者某些浏览器支持拖动链接新窗口打开,但是这些并不适用于所有的访客. 所以,我们可以考虑,让文章中的所有链接都在新窗口打开.要实现这个功能,你可以在添加链接的时候,手动选择打开方式(给链接添加 ta