WordPress popular postsが機能しない場合の対処法

電卓

アクセス数を元に人気記事ランキングの表示が可能になるWordPressプラグインのWordPress popular posts(以下wpp)。ユーザーの直帰率、離脱率を改善していろんな記事を見てもらえる可能性を上げてくれて、私の愛用しているテーマ「Simplicity」と連携できる素晴らしいプラグインです。

しかし、私の環境では設定画面に「Sorry. No data so far.」と出るだけでまったく機能しませんでした。いろいろ勘違いしていたり、思い込みで時間がかかりましたが、一応動かすことはできるようになりました。

スポンサーリンク

私の最終的なwppの状況

残念ながらこの方法でも、WordPress popular postsの1日や1週間、1ヶ月単位のpvは、集計することができませんでした。全期間のPV(All-time)のみ集計できるようになります。

勘違いと注意

色々調べて、対策を試していたのですが、前述のとおり「全期間のみ集計できる現象がある」ということに気づいていませんでした。Last 24 hours の部分ばかり見ていたので、対応の効果があったのか確認できていませんでした。とりあえず動作しているかは All-Time の部分で確認してください。

wppのpvランキング確認画面

効果がなかった対策

もしかしてこの対処法で改善する可能性もあるので一応書いておきます。

wppの設定を変える

まず、かなり一般的な対処法で、「Ajaxify widget」を Enabled にするというもの。これは、キャッシュプラグインなどの影響でカウントをしない場合に有効です。

そして、意外とやってしまう、うっかりミス。「Log views from」を Visitors only(アクセスしてきたユーザー)にしているのに、ログインしている自分のアクセスでカウントのチェックをしている。または Logged-in users only にしてしまっている状態。

wppの設定画面

他のプラグインの干渉

あやしいプラグインだけを試すのではなく、いったん全てのプラグインをオフにして、wppだけで動作しないかチェックしてみましょう。

それで、結局どうやって動くようにしたの?

手順だけを書くと

  1. 今入れているwppのアンインストール
  2. 古いバージョンのwppをインストール&有効化
  3. 最新のバージョンにアップデート
  4. 一度無効化して最有効化

個別に解説します。

wppのアンインストール+古いバージョンのインストール

これはいろいろな場所で紹介されている対処法なのですが、この対処法で指定されているver2.1.4というのがダウンロードページにすでに無いのです(一番古いのはver2.3.7)。

さらに最新はver3.3.3。「ver2.1.5以降はpvカウント用のデータベースが作成されない」という不具合はとっくに解決していると思い込んでいました。実際にはまったく作成されていなく、古いのを入れることで(多分全期間用のデータベースのみが)作成されていました。

何故ver2.3.7(2016年6月26日現在)で直るのかはよくわかりませんが、とりあずダウンロードして手動インストールをしてください。

A highly customizable, easy-to-use popular posts widget!

最新バージョンにアップデート

普通にWordPress管理画面の「インストール済みプラグイン」から更新をクリックしてください。

一度無効化して最有効化

これもかなり気づきにくかったです。やることはそのまま無効化、最有効するだけです。

私と同じ症状ならば、All-Timeのみですが、カウントが開始されていると思います。

指定期間の人気記事を表示できない問題はどうするか

他の似たプラグインを使うという選択肢もあるのですが、wppがメジャーすぎるのか、代替案の情報があまりないんですよね。私は、あまりにも古い記事が気になるようなら、手動で定期的にデータを消去していこうかなぁと考えています。まあ、しばらくは様子見ですね。

追記 期間別PV数も記録できるようになりました。

色々調べた結果、原因はデータベースに週間、日別PVを記録する記述が作成されていないのが原因ってことが分かりました。

サポート掲示板で同じような質問を見つけたので

Topic: Error log filled with these « WordPress.org Forums

プラグイン作者が書き込んでいる内容を、テーブル名を修正しつつ「phpMyAdmin」から頑張って書き込んだのですが、知識不足でどうも間違ってるらしく上手くいかない……。

で、ほぼ諦めてたのですが、サーバーのPHPバージョンを 5.6 から7にバージョンアップしたら普通に動作するようになりました! 

バージョアップ後、一度アンインストールし、再インストールするだけで全機能が正常に機能しています。

スポンサーリンク
Googleプラス
Push7
フェイスブック