zl程序教程

您现在的位置是:首页 >  后端

当前栏目

解决使用 cos-html-cache 静态化之后阅读浏览次数的问题

静态HTML 问题 使用 解决 阅读 之后 cache
2023-06-13 09:13:11 时间

最近访问量增大让我意识到需要做一做静态化,经过比较之后发现 cos-html-cache 非常好,但是遇到一个问题,启用该插件之后浏览次数无法更新了,一直停留在那里,网上搜了一下建议使用 WP-PostViews JS 版本,但是我不想如此简单的功能不值得再安装一个插件,找了这么多天,终于找到一篇文章:WordPress利用Ajax实现文章浏览次数统计代码。

根据作者的文章做做修改。

直接修改主题,先找到 functions.php 函数文件,直接在后面加入下面的代码:

function Bing_statistics_visitors( $cache = false ){
 global $post;
 $id = $post-
 if( $cache ) $id = $_GET[id];
 if( ( !is_singular() !$cache ) || !$id ) return;
 if( WP_CACHE !$cache ){
  echo script type="text/javascript" window.onload=function(){var e=null;window.XMLHttpRequest?e=new XMLHttpRequest:e=new ActiveXObject("Microsoft.XMLHTTP"),e.open("GET"," . admin_url( admin-ajax.php ) . ",!0),e.send("action=visitors id= . $id . ")} /script
  return;
 }
 $post_views = (int) get_post_meta( $id, views, true );
 if( !update_post_meta( $id, views, ( $post_views + 1 ) ) ) add_post_meta( $id, views, 1, true );
}
add_action( wp_head, Bing_statistics_visitors );
 
//解决缓存问题
function Bing_statistics_cache(){
 Bing_statistics_visitors( true );
}
add_action( wp_ajax_nopriv_visitors, Bing_statistics_cache );
add_action( wp_ajax_visitors, Bing_statistics_cache );
 
//获取计数
function Bing_get_views( $get = true ){
 global $post;
 $views = number_format( (int) get_post_meta( $post- ID, views, true ) );
 if( $get ) return $views;
 echo $views;
}

然后在需要显示浏览次数的模板,主要 sing.php 和 index.php 适当的位置添加以下代码(用 Bing_get_views() 函数获取或输出数量):

?php echo Bing_get_views(); ?

或者

?php Bing_get_views( false ); ?

OK,就是这么简单!


原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/32079.html