- Web制作
WordPress Popular Posts の人気記事ランキングがログイン中しか表示されない問題

WordPressの人気記事表示プラグイン「WordPress Popular Posts(以下WPP)」は、アクセス数に基づいて自動的に人気記事を集計し、ウィジェットやショートコードで簡単にランキングを表示できる便利なプラグインです。
しかし、「ログイン中はランキングが表示されるのに、ログアウト状態では表示されない」という問題に直面した方も多いのではないでしょうか。
実はこの現象、セキュリティ系プラグインによるREST APIの無効化設定が原因であることが非常に多いのです。
原因:REST API(ユーザー名漏えい防御)の無効化設定
WPPは、内部的にWordPressのREST APIを使ってアクセスデータやランキング情報を取得・表示しています。
そのため、「REST APIが無効化」されていると、必要なデータの取得に失敗し、ランキングが表示されなくなってしまうのです。
ログイン中は管理者ユーザーとしてREST APIにアクセスできるため問題なく表示されますが、ログアウト状態ではREST APIがブロックされているため、ランキングが読み込めず表示されなくなるというわけです。
よくある原因となるセキュリティプラグイン
以下のようなセキュリティ系プラグインを使っている場合、REST APIの無効化が影響している可能性があります。
- SiteGuard WP Plugin
- CloudSecure WP Security
- Wordfence Security
特に「REST APIアクセスを未ログインユーザーに対してブロックする」という設定が有効になっていると、WPPが正常に動作しません。
解決方法:除外プラグインとしてWPPを設定
セキュリティプラグインの設定で「REST API(ユーザー名漏えい防御)の無効化」が有効になっていたら、除外プラグインとして「WordPress Popular Posts」を設定します。
《例:SiteGuard WP Plugin》

《例:CloudSecure WP Security》

設定後、ランキング表示を確認して正常に表示されていればOKです。
まとめ
WPP のランキングがログアウト時に表示されない場合、原因の多くはREST APIの無効化です。
セキュリティ系のプラグインで「REST API(ユーザー名漏えい防御)の無効化」が有効になっている場合は、「WordPress Popular Posts」を除外プラグインとして設定することで解決できます。

名古屋の Web 制作会社で 9 年半働いた後フリーランスに。中小企業のWEBサイト制作実績 120 サイト以上。ディレクション、デザイン、コーディング、WordPress 構築まで手掛けます。Web制作に関わる情報やワーケーション日記などを執筆しています。