キャッシュが効いてるWordPressサイトでアクセス数を更新する方法

キャッシュが効いてるWordPressサイトでアクセス数を更新する方法



なるべくプラグインには頼らない!

をモットーにテーマをカスタマイズしています。

その中で、よくブログで目につく「人気の投稿」表示機能というのがありますが、これを下記リンクのコードを参考に、プラグイン無しで実装してみました。

Wordpress popular posts without using plugins
参考
Wordpress popular posts without using plugins

I'm working on a site trying to get a popular posts section on it. I've tried plugins but they require wp_head() and that destroys the jCarousel that I have on the site. I've implemented the code to

Wordpress popular posts without using plugins Stack Overflow

要は、アクセスが発生したらその度に投稿のカスタムフィールドにカウントアップしていく、という設定です。

さて、これで上手く行ったと思っていたら・・・

全然アクセス数が更新されない。

何故か?

・・・

・・・

・・・

キャッシュだ。

WordPressサイトでは、表示を早くするためにキャッシュプラグインを導入するのが常であり、もれなく当方のサイトもそのようにしていました。

そうなると、アクセスがあった際にキャッシュされたページを優先的に表示するため、アクセス数を更新する関数がスルーされてしまいます。

なので、キャッシュを有効にしているサイトでもアクセス数を更新するためには、ajaxを介して関数を実行するのだそうです。

コードは下記リンクを参照。

Update Custom post field by Ajax on cached site
参考
Update Custom post field by Ajax on cached site

My site cached by "wp-supper cache" plugin and "cloudflare.com" So my php function to count post views working incorrectly. I try to use ajax for it but I'm noob with JS code so I can not know wh...

Update Custom post field by Ajax on cached site WordPress Development Stack Exchange

ついでに管理画面の投稿一覧画面にアクセス数を表示する設定も含まれています。

1点気づいたのですが、これまでは

function postViews_callback(){
    if( is_single() ){
        setPostViews($_GET['postid']) ;
        echo "Success, Post id: ".$_GET['postid'];
        die();        
    }
}

のようにis_single()で条件分岐をしていましたが、これだとajaxを経由しているためか、アクセス数が更新されませんでしたので、除く必要があるようです。

ちなみに、 W3 Total Cacheだと、

<!-- mfunc wpb_set_post_views($post_id); --><!-- /mfunc -->

と書けばキャッシュが有効でも使えるそうです。

今日はここまで
キャッシュが効いてるWordPressサイトでアクセス数を更新する方法

キャッシュが効いてるWordPressサイトでアクセス数を更新する方法


開発

なるべくプラグインには頼らない! をモットーにテーマをカスタマイズしています。 その中で、よくブログで目につく「人気の投稿」表示機能というのがありますが、これを下記リンクのコードを参考に、プラグイン無しで実装してみました…


関連する記事



こちらはいかが?


コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

*(必須)

*(必須・表示されません)