欢迎访问服务器技术网-www.fuwuqijishu.com

两个无插件实现WordPress文章阅读浏览次数的脚本

网站建设 fuwuqijishu 2年前 (2022-09-04) 49次浏览 0个评论 扫描二维码

有时候在做公司客户网站的时候找到的成品或者半成品主题有的是有自带浏览阅读次数的,有些是不带的,省事的办法直接安装阅读次数插件可以快速实现。有些时候不着急赶工,可以寻找几个免插件的实现方法,这里也把我这几天在调整的主题可以实现免插件实现阅读次数的展示方法记录下来。

1、第一种方法

/** 阅读数 */
function get_post_views ($post_id) {

$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’;
}

echo number_format_i18n($count);

}

function set_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’);

这里我们将代码丢到Functions.php文件中,然后用:

<?php get_post_views($post -> ID); ?>

调用到需要的展示位置。

2、第二种办法

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;
}

第一种办法是我一直有在用的,具体出处忘记,这个脚本来自:https://www.slowlyeof.me/?p=2542

调用方法:

<?php post_views(‘ ‘, ‘ 次’); ?>

同样可以根据需要位置贴上就可以实现。

喜欢 (0)
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

Warning: error_log(/www/wwwroot/fuwiqijishu/wp-content/plugins/spider-analyser/#log/log-2321.txt): failed to open stream: No such file or directory in /www/wwwroot/fuwiqijishu/wp-content/plugins/spider-analyser/spider.class.php on line 2900