wordpressのカスタム投稿でユニークなIDとPWDのBasic認証を付けたい
前提・実現したいこと
wordpressのSmart Custom Fieldsを使って、カスタム投稿を作りました。
カスタム投稿で作成したページに個別でユニークなBasic認証を付けたいと思っています。
以下のページを参考にBasic認証を設置
https://takayakondo.com/individual-basic-authentication/
このBasic認証のIDとPWDの箇所
"admin" => "12345"
のIDとpwdの文字列をカスタム投稿のカスタムフィールド名に置き換えました。
IDとPWDを直接文字列で記載した場合はBasic認証は問題なく動作。
ところが、以下のように動的になるように修正したところ、
<?php
$mh_id = SCF::get('mh_id');
$mh_pwd = SCF::get('mh_pwd');
if(!is_home()):
if(get_post_type() === 'files'):
$userArray = array(
//"admin" => "1234"
"${mh_id}" => "${mh_pwd}"
);
basic_auth($userArray);
endif;
endif;
?>
MAMPのローカルでは問題なく動作するのですが、サーバーにアップした状態だと認証されませんでした。
調べてもなぜローカル上では問題無いのに、サーバー上では不具合があるのかわかりません。
サーバーにアップした場合でもベーシック認証が効くようにしたいです。
発生している問題
正しいIDとPWDを入力すると、MAMPのローカルでは正常にBasic認証が効くのですが、サーバーにアップした状態でIDとPWDを入力すると認証されません。
試したこと、その他備考
(1)MAMPのローカルで試したところ問題なくbasic認証は動作する。
しかし本番サーバーだと不具合が起きる。
(2)
"${mh_id}" => "${mh_pwd}"
をコメントアウトにして
(コメントアウトしている→)"admin" => "1234"を表示にすると、Basic認証は問題なく動くのでBasic認証のソースコード自体は問題なさそう。
ローカルでは問題なく動作するのに、サーバーにアップすることでベーシック認証が効かなくなる理由がわからない。
WPバージョンやプラグインについて
Wordpress5.5
Smart Custom FIelds