ずっと昔(サイトを立ち上げたばかりの頃)、私はすでに WP Postviews プラグインを使っていました。当時は CDN を有効にしていたため、アクセス数を集計できず、そこで「WordPress で CDN を有効にすると閲覧数が増えない」という記事を書きました。

現在は HTML キャッシュも有効にしました。管理画面ではアクセス数を集計できるものの、フロントエンドのページはやはり更新されません。仕方がないので、あちこちでチュートリアルを探していたところ、月宅ちゃんのところで完璧な解決策を見つけました。ここで皆さんに共有したいと思います。

解決

1つ目、プラグインのディレクトリ /wp-content/plugins/wp-postviews に移動し、

postviews-cache.js ファイルを開いて、中のコードをすべて削除し、以下のコードを追加して ctrl+s で保存します。

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

2つ目、wp-postviews.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;
}

顔がいい人はもう完璧に解決しましたが、顔がよくない人はまだ必死にもがいています。わははは!