Postviewsプラグインのアクセス数キャッシュが更新されない問題を解決する

3,619 0

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

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

解決方法

ステップ1、プラグインディレクトリ /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;
});

ステップ2、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)

まだコメントはありません

コメントを投稿

憂いを忘れる一枚

「憂いを忘れる一枚」は、技術探究と日々の暮らしをテーマにした個人サイトです。Web 開発、バックエンド、DevOps の実践を記録し、ソフトウェアツールやデジタル体験、コードの外で得た見聞と思索を共有します。

© 2026 憂いを忘れる一枚. 無断転載を禁じます.