「ログインしていない状態でwp-adminのフォルダやファイルにアクセスすると、wp-login.phpにリダイレクトされるものだと認識しております。」とお書きですが、この認識が間違っています。
Apacheのリダイレクトの場合、例えば、.htaccessなどに
Redirect 301 /a.php /b.php
と書くか、または、
RewriteEngine On
RewriteRule ^a.php$ b.php [R=301,L]
と書くことで実現できます。
この時Apacheは、ブラウザからa.phpが要求されたら、a.phpを開くことなく即座にb.phpを開きます。ですから、b.phpが閲覧制限されていたら、a.phpもまた閲覧制限が適用されます。
ところがwp-admin/index.phpは、そういう正規の意味でのリダイレクトが行われているわけではありません。WordPress の PHP コード(アプリケーションレベル)で実行されている擬似的なリダイレクトです。その動作は次のようになっています。
処理の流れ(ログインしていない場合に wp-admin/index.php
にアクセスすると…)
- ブラウザが
https://example.com/wp-admin/index.php
にアクセス - Apache は そのファイルを通常通り処理し、PHP が実行される
wp-admin/index.php
→wp-admin/admin.php
が読み込まれ、admin.php
内で WordPress コア関数auth_redirect()
が呼ばれる- この関数が「ログインしていない」と判定すると、
wp_redirect( wp_login_url() ); exit;
というコードにより、PHP側でwp-login.php
へリダイレクト - ブラウザが
wp-login.php?redirect_to=...
に飛ばされる
という流れです。
つまり、一旦index.phpは開かれるわけです。ということは、wp-login.phpにいくらIPアドレス制限をかけても、制限をかけてないindex.phpはアクセスし放題なわけです。もちろん、index.phpで処理された結果転送されたwp-login.phpは開かれないですよ。でも、index.phpは開かれた後なので、ログには制限されているはずのIPアドレスが残るのです。