WordPress 技巧:在后台显示文章浏览数「可排序」

除了使用 Google Analytics 统计整个博客流量之外,我们还可以对每篇文章的点击数进行统计,通过每篇文章统计,就可以知道哪些文章更受读者欢迎……比如 WP-PostViews 插件,不过这个插件不能在后台文章列表页面显示点击数,可以使用 WordPress 的 Hook 实现。

WordPress 技巧:在后台显示文章浏览数「不可排序」

水煮鱼原版代码:

add_filter('manage_posts_columns', function($columns){
$columns['views'] = __('Views');
return $columns;
});

add_action('manage_posts_custom_column',function($column_name,$id){
if ($column_name != 'views'){
return;
}
echo get_post_meta($id, "views",true);
},10,2);

将上面代码复制到 WP-PostViews 插件原文件或者主题 functions.php 中即可在 WordPress 后台文章列表页面查看每篇文章点击数。

不过这个不能根据点击数「Views」排序显示文章。

WordPress 技巧:在后台显示文章浏览数「可排序」

上面水煮鱼代码,结合这个「给wordpress后台文章列表增加自定义排序栏」(文章备份)即可实现在后台显示文章浏览数,并可根据浏览数排序。

参考代码如下(有更新,注意红色字体部分代码):

add_filter('manage_posts_columns', function($columns){
$columns['views'] = __('Views');
return $columns;
});

add_action('manage_posts_custom_column',function($column_name,$id){
if ($column_name != 'views'){
return;
}
if ( get_post_meta($id, "views",true) == '' ){ //增加没有 views 字段处理,否则 PHP 8 环境会报错
echo '0';
} else {
echo get_post_meta($id, "views",true);
}
},10,2);

add_filter( 'manage_edit-post_sortable_columns', function ( $columns ) {
$columns['views'] = 'views';
return $columns;
});
add_action( 'load-edit.php', function() {
add_filter( 'request', 'theme_admin_sort_views' );
});
function theme_admin_sort_views( $vars ) {
if ( isset( $vars['orderby'] ) && 'views' == $vars['orderby'] ) {
$vars = array_merge(
$vars,
array(
'meta_key' => 'views',
'orderby' => 'meta_value_num'
)
);
}
return $vars;
}

将上面代码复制到主题 functions.php 中即可在 WordPress 后台文章列表页面查看每篇文章点击数,并可点击进行升序/降序排序。(可能需要根据实际环境修改)

参考资料

WordPress 技巧:在后台显示文章浏览数

给wordpress后台文章列表增加自定义排序栏

除非注明,沙唐桔文章均为原创,本文地址 https://cyhour.com/1554/,转载时必须以链接形式注明原始出处。
声明:我们不销售主机,选主机需合法使用。任何主机需定期备份,防止数据丢失。信息以实际为准,评测仅供参考不代表权威!

CentOS 7 编译安装 PHP 7.4 提示 No package ‘oniguruma’ found

在编译安装 PHP 7.4 时,如果使用 --with-mbstring 参数,则需要安装 oniguruma。oniguruma 是一个处理正则表达式库,php7.4 中,mbstring 正则表达式处理功能对这个包有依赖。所以,安装 php7.4 前需要安装 oniguruma 和 oniguruma-devel 两个软件包。 一般安装epel 然后安装即可: yum instal…
浏览: 81 标签:  ,  ,  , 

WordPress 数据库常用 SQL 语句

WordPress 数据库存储了站点所有信息,数据库对站点来说至关重要,一般情况下不要折腾数据库。但是很多情况下,使用 SQL 语句批量修改站点内容,大大提高效率。下面 SQL 语句均收集自网络,操作需谨慎。所有的SQL语句都是假定你的数据库的前缀是"wp_" ,如果你使用不同的表前缀,请自行修改。 温馨…
浏览: 131 标签:  , 

CentOS 7.9.2009 PHP 7.1.12 升级到 PHP 8.0.1

前阵子在闲置 VPS 和垃圾站环境试过将 PHP 7.1.12 升级到 PHP 8.0.0,看起来没什么问题,只是 fileinfo 扩展没能折腾上。 昨天在 BuyVM 1核 512MB AMD CPU VPS 上又测试了一遍,参考网友方法,fileinfo 也开启成功了,忍不住把博客环境也升级一下,估计最多一个小时就能搞定。 然而实际花了4个…
浏览: 91 标签:  ,  ,  , 

OneinStack php 7.4.12 升级 php 8.0.0

2020-11-26,PHP 8.0.0 正式版发布,WordPress 5.6 昨天出来了,开始支持 PHP 8,今天看到博友说 1G 内存也能跑 PHP7、PHP8 共存,忍不住在探针站试着升级了一下。 OneinStack 自带 php 升级脚本,不过并不支持跨版本升级,比如无法从 php 7.4.12 升级到 php 8.0.0,参考「OneinStack php 7.3.…
浏览: 166 标签:  ,  ,  ,  , 
浏览: 107 标签:  ,  ,  , 

Comments:15

  1. 好东西。。。。。。。。。不过有小错误,get_post_meta($id, “views”,true); 前多了个echo。

    2020.12.08 21:52 # 回复
    1楼
    • @Yan 多了吗?亲测在用代码就有 echo 啊~

      2020.12.08 22:19 # 回复
      • @老杨 多了。亲测echo重复输出了。我是wordpress 5.5.3。

        2020.12.08 22:27 # 回复
        • @Yan 同样 5.5.3 啊,get_post_meta 并不会打印出来啊,奇怪~
          https://developer.wordpress.org/reference/functions/get_post_meta/

          2020.12.08 22:51 # 回复
  2. 不知道,哈哈哈。先这样吧。

    2020.12.08 22:54 # 回复
    2楼
  3. 看淡了 懒得弄了😂

    2020.12.09 07:20 # 回复
    3楼
  4. 有了这个,就知道以后写什么方向的东西了。

    2020.12.09 10:35 # 回复
    4楼
  5. 你隐藏前台之后,确实有这个需求。囧 。。

    2020.12.20 20:11 # 回复
    5楼
    • @郑永 前台没有隐藏啊,不过是加了点处理,加上后台也更方便。

      2020.12.20 21:36 # 回复
  6. 我是用了 WP-PostViews 插件,后台可以按浏览次数排序的。

    2021.01.06 16:16 # 回复
    6楼

发表留言

Vultr 送$100,搬瓦工年付最低$49,优惠码 BWH3HYATVBJW,更多推荐VPS信息