ずっと昔(サイトを立ち上げたばかりの頃)、私はすでに 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;
}
顔がいい人はもう完璧に解決しましたが、顔がよくない人はまだ必死にもがいています。わははは!