解决 WP Postviews 缓存无法刷新

3,599 0

很久很久以前(就是刚建站的时候),我就用上了 WP Postviews 插件,因为那时候开启了 CDN,所以没法统计访问量,于是就写了「WordPress 开启 CDN 浏览量不增加」这篇文章。

现在我又开启了 HTML 缓存,虽然后台数据能统计访问量,然而前台页面还是不会刷新,没办法咯,只好到处找教程,后来在月宅酱找到了完美的解决方案,现在分享给小伙伴们。

解决

第一步、进入插件目录 /wp-content/plugins/wp-postviews

打开 postviews-cache.js 文件,删除内部所有代码,加入以下代码并 ctrl+s 保存。

JavaScript
jQuery.ajax({
    type: "GET",
    url: viewsCacheL10n.admin_ajax_url,
    data: "postviews_id=" + viewsCacheL10n.post_id + "&action=postviews",
    cache: !1
});
jQuery(document).ready(function() {
    var ajax_data = {
        action: "show_postview",
        bigfa_view: viewsCacheL10n.post_id
    };
    $.post(viewsCacheL10n.admin_ajax_url, ajax_data,
    function(data) {
        $('.show-view').html(data);
    });
    return false;
});

第二步、打开 wp-postviews.php 文件,在最后加入以下代码

PHP
add_action('wp_ajax_nopriv_show_postview', 'show_postview');
add_action('wp_ajax_show_postview', 'show_postview');
function show_postview(){
    $views_options = get_option('views_options');
    $ID = $_POST["bigfa_view"];
    $custom_fields = get_post_custom($ID);
    $my_custom_field = $custom_fields['views'];
    foreach ( $my_custom_field as $key => $value ) {
        echo str_replace('%VIEW_COUNT%', number_format_i18n($value), $views_options['template']);
    }
    die;
}

长得帅的人已经完美解决了,长得丑的人还在苦苦挣扎,哇哈哈哈!

评论

(0)

暂无评论,来说两句吧

发布评论

© 2026 一纸忘忧. 保留所有权利.

一纸忘忧的个人网站,关于技术探索与日常生活,记录 Web 开发、服务端与 DevOps 实践,分享软件工具、数码体验,以及代码之外的见闻与思考。