WordPressテーマ「SWELL」を使用していて、ブラウザのコンソールに以下のようなエラーが表示されていませんか?
main.min.js?ver=2.16.0:1
POST https://hogehoge.com/wp-json/wp/v2/swell-ct-pv 401 (Unauthorized)
main.min.js?ver=2.16.0:1 TypeError: Failed callRestApi: 401
at main.min.js?ver=2.16.0:1:297
main.min.js?ver=2.16.0:1 route:swell-ct-pv
{method: 'POST', body: URLSearchParams}この記事では、このエラーの原因と解決方法を解説します。
エラーの内容
このエラーは、SWELLテーマがWordPressのREST APIを使ってPV(ページビュー)カウントを記録しようとした際に、認証エラー(401 Unauthorized)が発生していることを示しています。
影響
- サイトの表示自体には影響しない
- 人気記事ウィジェットのPVカウントが正常に動作しない可能性がある
- SWELLの一部機能が正しく動作しない可能性がある
エラーの原因
このエラーは、セキュリティ系プラグインやパフォーマンス系プラグインがREST APIをブロックしていることが原因です。
主な原因となるプラグイン:
- Perfmatters
- XO Security
- SiteGuard WP Plugin
- Wordfence
- All In One WP Security
- iThemes Security
解決方法
使用しているプラグインに応じて、以下の設定を確認してください。
Perfmatters の場合
Perfmattersを使用している場合、REST APIを無効化する設定が有効になっている可能性があります。
- WordPress管理画面 → Perfmatters → Options
- 「Disable REST API」の項目を確認
- 以下のいずれかになっていたら変更
- 「Disable for Non-Admins」→ 「Default (Enabled)」に変更
- 「Disable When Logged Out」→ 「Default (Enabled)」に変更
- Save Changesをクリック
XO Security の場合
XO Securityを使用している場合、REST APIの制限設定を確認します。
- WordPress管理画面 → 設定 → XO Security
- 「REST API」タブを開く
- 「REST APIの無効化」がオンになっている場合、以下のエンドポイントを許可リストに追加(チェックを入れる)
/wp/v2/swell-ct-pv
/wp/v2/swell-block-settings
/wp/v2/swell-ct-btn-data
/wp/v2/swell-ct-ad-data
/wp/v2/swell-lazyload-contents
または、REST APIの制限を完全にオフにする。
SiteGuard WP Plugin の場合
- WordPress管理画面 → SiteGuard → REST API
- 「REST APIを無効化」をオフにする
Wordfence の場合
- WordPress管理画面 → Wordfence → Firewall
- 「Advanced Firewall Options」を開く
- REST APIに関連する制限を確認し、必要に応じて緩和
その他の確認事項
.htaccess の確認
.htaccessファイルにREST APIをブロックするコードがないか確認してください。
# このようなコードがあれば削除
RewriteRule ^wp-json/ - [F]
functions.php / Code Snippets の確認
テーマのfunctions.phpやCode Snippetsプラグインに、以下のようなREST APIを制限するコードがないか確認してください。
// このようなコードがあれば削除またはコメントアウト
add_filter('rest_authentication_errors', function($result) {
if (!is_user_logged_in()) {
return new WP_Error('rest_forbidden', 'REST API restricted', array('status' => 401));
}
return $result;
});
サーバーのWAF設定
レンタルサーバーによっては、WAF(Web Application Firewall)がREST APIをブロックしている場合があります。サーバーの管理画面でWAF設定を確認してください。
設定変更後の確認
設定を変更した後は、以下の手順でエラーが解消されたか確認してください。
- キャッシュをクリア
- WP Rocketなどのキャッシュプラグインを使用している場合、キャッシュをクリア
- ブラウザをリロード
Ctrl + Shift + R(Windows)またはCmd + Shift + R(Mac)で強制リロード
- コンソールを確認
- ブラウザの開発者ツール(F12)でコンソールを開き、エラーが消えているか確認
REST APIが動作しているか確認する方法
REST APIが正常に動作しているかテストするには、ブラウザで以下のURLにアクセスしてください。
https://あなたのサイト/wp-json/wp/v2/
- 正常:JSON形式のデータが表示される
- 異常:エラーメッセージや空白ページが表示される
まとめ
SWELLの「swell-ct-pv」401エラーは、セキュリティ系・パフォーマンス系プラグインがREST APIをブロックしていることが原因です。
確認すべきプラグイン:
| プラグイン | 確認場所 |
|---|---|
| Perfmatters | Options → Disable REST API |
| XO Security | 設定 → REST API |
| SiteGuard | SiteGuard → REST API |
| Wordfence | Firewall → Advanced Options |
REST APIはWordPressの重要な機能なので、完全に無効化するよりも、必要なエンドポイントだけを許可する設定がおすすめです。


