• 梦想还是要有的,万一实现了呢...
  • 区块链论坛整装待发...

解决WordPress(WP)开启wp super cache缓存之后 文章点击数不增加问题(Ajax方法)

WordPress Vetrue 6个月前 (04-12) 250次浏览 1个评论 二维码链接

第一步:在 wordpress 根目录下,新建 ajax.php.内容如下

<?php
define( 'DOING_AJAX', true );
require_once( 'wp-config.php' );
do_action( 'wp_ajax_nopriv_' . $_REQUEST['action'] );
die( '0' );

第二步:在主题目录下的 functions.php 添下以下代码

//WordPress 文章点击统计 ajax 版,兼容 wp super cache 缓存代码及插件
//整理:Vetrue https://vetrue.com
add_action( 'wp_ajax_nopriv_v', 'views' );
function views($echo) {
    $post_id = intval( $_GET['views_id'] );
    if( $post_id > 0 ) {
        $post_views = get_post_custom( $post_id );
        $post_views = intval( $post_views['views'][0] );
        update_post_meta( $post_id, 'views', ( $post_views + 1 ) );
        exit();
    }
    if ($echo == 1) {
        global $post; 
        $post_ID = $post->ID;
        $views = (int)get_post_meta($post_ID, 'views', true);
        echo number_format($views);
    }
}

第三步:引入 jquery 库

第四步:在 footer.php 文件 body 之前添加

<?php if( is_single() ){?>
<script type='text/javascript'>
/* <![CDATA[ */var v = {"u":"\/ajax.php","id":"<?php the_ID(); ?>"};/* ]]> */
jQuery.ajax({type:"GET",url:v.u,data:"views_id="+v.id+"&action=v"});
</script>
<?php } ?>

第五步:完毕,接下来在需要显示的计数的主循环内添加以下代码即可

<?php views(1);?>次阅读

Vetrue , 版权所有丨如未注明 , 均为原创丨转载请注明原文链接
原文标题:解决 WordPress(WP)开启 wp super cache 缓存之后 文章点击数不增加问题(Ajax 方法)
原文链接:https://vetrue.com/article/129.html
喜欢 (3)
发表我的评论
取消评论
表情 加粗 删除线 居中 斜体 签到

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

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
(1)个小伙伴在吐槽
  1. 好像不管用了
    懂达2018-04-13 15:54 回复