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

纯代码统计文章浏览次数

1.在主题的 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;  

2.在需要显示该统计次数的地方使用下面的代码调用:

文章被阅读:<?php post_views(' ', ' 次'); ?> 

获取浏览次数最多的文章

这个一般来说,就是用来获得热门文章了.如果要获取上面的函数统计出来的浏览次数最多的文章,可以在 functions.php文件的最后一个 ?> 前面添加下面的代码:

 代码如下 复制代码

/// 函数作用:取得阅读最多的文章  
function get_most_viewed_format($mode = '', $limit = 10, $show_date = 0, $term_id = 0, $beforetitle= '(', $aftertitle = ')', $beforedate= '(', $afterdate = ')', $beforecount= '(', $aftercount = ')') {  
  global $wpdb, $post;  
  $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)" : '';  
  // database query  
  $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 meta_key = 'views' GROUP BY ID ORDER BY views DESC LIMIT $limit");  
  if ($most_viewed) {  
   foreach ($most_viewed as $viewed) {  
    $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>$beforetitle$post_title$aftertitle";  
    if ($show_date) {  
      $posted = date(get_option('date_format'), strtotime($viewed->post_date));  
      $output .= "$beforedate $posted $afterdate";  
    }  
    $output .= "$beforecount $post_views $aftercount</li>";  
   }  
  } else {  
   $output = "<li>N/A</li>n";  
  }  
  echo $output;  

然后使用下面的函数调用:

 代码如下 复制代码

<?php get_most_viewed_format(); ?> 

小结

这里部落需要补充一下的是,用上面的方法获得的文章浏览次数统计,与WP-Postviews 插件是有所差别的,这里的代码获取的,其实就连搜索引擎爬虫也会进行统计.

时间: 2024-10-31 09:13:16

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

用C#获取浏览文件夹对话框

对话框 我们知道,C#里面有选择文件的对话框控件,却没有选择文件夹的对话框控件,不少人为了选择一个文件夹只好自己用TreeView类来处理,其实在C#里面完全不用那么麻烦,我们可以用C#的FolderNameEditor类的子类FolderBrowser类来实现获取浏览文件夹对话框的功能. 下面来看看具体是怎么实现的. 首先新建一个winform的项目,再新建一个类文件(File->AddNewItem->Class). 因为FolderNameEditor是在System.Windows.F

代码-求大神指导!!!!!如何实现记录用户浏览数,将浏览的类型记录下来,根据次数形成用户标签来做推广

问题描述 求大神指导!!!!!如何实现记录用户浏览数,将浏览的类型记录下来,根据次数形成用户标签来做推广 我做的是一个o2o的活动网站,线上报名活动,同时线上有论坛 我希望根据用户经常报名的活动类型或者参与的论坛版块记录下这些浏览数, 然后在数据库表里将浏览的主题和次数形成用户的标签,来做相应的活动或产品推广 我的活动表activity里有type就是活动的类型 帖子表tiezi有版块就是帖子的类型 然后要怎么记录用户的浏览数的代码如何实现, 然后是新建一张表里面有userid,浏览次数,标签呢

php采集文章中的图片获取替换到本地

本篇文章是对php采集文章中的图片获取替换到本地的实现代码进行了详细的分析介绍,需要的朋友参考下   复制代码 代码如下: /**  * 获取替换文章中的图片路径  * @param string $xstr 内容  * @param string $keyword 创建照片的文件名  * @param string $oriweb 网址  * @return string  *  */ function replaceimg($xstr,$keyword, $oriweb){     //保存

写原创文章也不难,有秘诀后不再为文章不收录而头痛

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断 淘宝客 云主机 技术大厅 百度原创计划的执行后,众多网站的收录都出现极大的波动,基本上都是大幅度的下降.百度绿萝算法的更新后,一直再打击伪原创采集内容的站定.通过百度搜索引擎多次算法的不断完善.提倡原创内容更新站点越来越强烈了,可众多站长跟我说:"SEO原创内容很难写,而且很耗时间和经历,你看伪原创采集过来多便捷省力."说到这作为seo优化皇冠网原

“登录密码错误次数超过历史最大次数”解决方法

小编新办的工商银行网银,试了半天终于明白咋样登陆,但半天出了个这个"登录失败,错误原因:[3032]登录密码错误次数超过历史最大次数." 打电话给客服,终于搞清了原因: 原来银行为了给客户保密,防止用户网银丢失后有人拿它暴力破解,所以设置了登录限制,如果有U盾的话,是10次错误记录就作废了,如果没有的话,你可以去银行进行解锁(带好卡和身份证),一般每天有3次错误登录机会的,每天输入3次错误密码,账号当天就锁定了,第二天会自动解锁的.看你的提示你要到银行柜台去重新办理密码了. 查看提示,

php采集文章中的图片获取替换到本地(实现代码)_php技巧

复制代码 代码如下: /** * 获取替换文章中的图片路径 * @param string $xstr 内容 * @param string $keyword 创建照片的文件名 * @param string $oriweb 网址 * @return string *  */function replaceimg($xstr,$keyword, $oriweb){     //保存路径    $d = date('Ymd', time());    $dirslsitss = '/var/www

wordpress rest api 漏洞又来了CVE-2017-5487 上次是修改文章内容这次可是泄露用户数据

在2月份的时候, wordpress rest api 曾经爆出过越权漏洞 ,结果是黑客可以修改文章内容.3月3日,REST API又出现了越权漏洞,成功的利用这个漏洞,可以绕过管理员权限泄露用户数据. CVE-2017-5487影响范围 影响版本WordPress 4.7.0,目前poc已经在exploitdb上公开 https://www.exploit-db.com/exploits/41497/ POC看起来比较简单,就是调用了wordpress的rest api接口进行users查询

QQ浏览器怎么设置无痕浏览?QQ浏览器无痕浏览怎么用

1)在手机中我们先打开QQ浏览器,然后如图所示我们点击[三]接着在打开功能我们点击[设置]    2)现在进入设置中我们点击[无痕浏览]选项打开,然后回到主页面看到右下方有个灰色人头证明是处在无痕浏览模式中了.   小提示 像很多浏览器没有这个功能那么我们要如何实现无痕浏览呢,其实方法很简单的我们只要上网之后清除浏览器缓存就可以了,如我们苹果浏览器就可以进入设置之后清除浏览记录是一样的,当然还有一些手机助手或杀毒软件都支持清除缓存功能哦.

标签式浏览默默的改变浏览习惯

标签化的浏览器改变了http://www.aliyun.com/zixun/aggregation/32533.html">我们的生活习惯.Firefox.Chrome.Opera,乃至于IE,无一例外的选择了用标签化浏览来取代弹出新窗口.在视窗操作系统中,任务栏排满程式之余,浏览器上布满了tab,俨然已经形 成了 新的用户习惯.这样的习惯,在其身后所隐匿的事实是:当浏览习惯从用户选择某一具体超链接行走,逐渐 转变为,对多个超链接的多线程访问.在这个事实下,我们的UE设计,需要反思和更大的