Ajax Load Moreで「もっと見る」クリック時にBasic認証を求められる原因と対処法

Ajax Load MoreBasic認証が出る?

症状:もっと見るボタンをクリックするとBasic認証が表示される

WordPressでAjax Load Moreを利用して記事一覧の「もっと見る」機能を実装していました。

開発環境では正常に動作していたため問題ないと思っていましたが、本番公開後、一部のブラウザで「もっと見る」ボタンをクリックするとBasic認証の入力画面が表示される問題が発生しました。

発生したブラウザは以下でした。

  • Microsoft Edge
  • Firefox

一方で、Chromeでは問題なく動作していました。

原因:admin-ajax.phpにもBasic認証がかかっていた

本番環境では管理画面のみBasic認証をかけていました。そのため、下記のファイルへのアクセス時にBasic認証が発生していました。

/wp-admin/admin-ajax.php

開発環境では、サイト全体にBasic認証を設定しており、最初にサイトを見る時点でBasic認証を通過しているため、Ajax通信時にも問題なく動作していました。

そのため、本番公開するまで問題に気づくことができませんでした。

また、Chromeでは正常に動作していたため、さらに発見が遅れる原因になりました。

解決策:admin-ajax.phpのみBasic認証を解除する

本番環境では、管理画面へのBasic認証は維持したまま、Ajax処理に必要な以下のファイルだけ認証対象から除外しました。

/wp-admin/admin-ajax.php

admin-ajax.phpへのアクセスを許可することで、Ajax Load Moreの「もっと見る」機能が正常に動作するようになりました。

おとうふ

田舎で働くWebエンジニア

毎日少しずつ成長中🌱
仕事・学習・暮らしの中で、自分が実際に経験したことを発信