質問: get_user_meta( get_current_user_id(), $cf_key, true ) ?? []; } define( 'HIS_CF', $cf_data ); // 100行目 } my_define_HIS_CF(); ``` ### 試したこと 配列以外はどうかと思い下記のようにIDを定義しましたが、エラーありませんでした。 ``` define( 'HIS_ID', get_current_user_id() ); ``` そして、配列かどうかについて`error_log`を出して確認しました。 ``` function my_define_HIS_CF(){ /* 略 */ error_log( '$cf_dataはこちらです :' . json_encode($cf_data) ); define( 'HIS_CF', $cf_data ); } my_define_HIS_CF(); ``` ↓結果 ``` [26-Sep-2019 14:46:02] $cf_dataはこちらです :{"user_meta_1":[],"user_meta_2":[{"age":20,"name":"smith"} ``` やはり配列ですよね...?(ログに出すためにエンコードして文字列になってますが、エンコード前は配列のハズ) 何かいけないのか、どなたかお分かりになりますでしょうか。
回答: WORDPRESS詳しくないんですが・・ 調べた限りだと、get_user_meta()の第3引数は`false`にしないと、戻り値が配列にはならないようです。(リンク先をご参照ください) json_encodeは「オブジェクト」でも「配列」でも同様の変換をしてくれるので、 恐らく今の状態で取得している`$cf_data`は中身に「オブジェクト」を含んでいるのだと思います。