質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

Q&A

1回答

3552閲覧

WordPressのget_usersにACFのカスタムフィールド情報を含めたい

chanNORI

総合スコア27

WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

0グッド

1クリップ

投稿2019/04/25 01:08

WordPressのとあるカスタム投稿個別記事テンプレートにて、その投稿のタイトル情報を用いて、ユーザ情報の検索をして1件のユーザ情報を引っ張りたいです。
検索対象の情報はACFで作成したカスタムフィールドで入力したデータとなっていて、以下のようなコードで引っ張ってこれるかと思ったのですがうまくいきませんでした。

PHP

1$title = get_the_title(); 2$users = get_users(array( 3 'meta_key' => 'user_name', 4 'meta_value' => $title 5));

get_usersの中身をvar_dumpしてみたところ、カスタムフィールドの情報が入っておりませんでしたので、get_usersにカスタムフィールドの情報を加える方法についてアドバイスいただけたらと思います。
また違うアプローチの仕方等あればそちらもアドバイスいただけたら幸いです。

ご教示のほどよろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

marlboro_tata

2019/04/25 02:00

'meta_key' で指定できるものはあらかじめ決まっているようで、そこにはACFで作ったカスタムフィールドが含まれないですし、含めるという方法はなんかもっすごい頑張ればできるのかもしれませんが、現実的ではないように感じました。ひとつの記事に対して、作成者以外のユーザーを紐づけるということなら、ACFでフィールドタイプを「ユーザー」にして記事からユーザーを選択するという方法ならできるかなあと思いました。
chanNORI

2019/04/25 08:24

ご回答ありがとうございます。 やっぱそうですよね。本来は今記事が持っている情報でなんとかしたいと思っていますが、最悪その手法を取るつもりでいます。
guest

回答1

0

get_users() で、ユーザープロフィールに紐づくカスタムフィールドの値を利用して、ユーザーを絞り込むことは可能ですが、get_users() で取得できるのは、基本情報だけですので、ユーザー情報に紐づくカスタムフィールドの値は get_usermeta() で、取得する必要があります。

カスタムフィールドの定義内容が不明なので、正しく理解できているか不明ですが... ユーザーページに 追加しているカスタムフィールドの値を参照したいということであれば、

$users = get_users(); foreach ( $users as $user ){ $user_id = $user->ID; $usermeta[$user_id] = get_user_meta( $user_id ); }

のようにして、まず、get_users() で、ユーザー情報を取得して、取得したユーザーIDを使って、 get_user_meta() で、ユーザーに紐づくカスタムフィールドを取得します。

上記のコードだとカスタムフィールドのデータは、 $usermetas['ユーザーID']['カスタムフィールドのキー名'] で参照できると思います。

関数リファレンス/get_user_meta 参照

投稿2019/04/25 04:20

編集2019/04/25 04:21
CHERRY

総合スコア25171

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

chanNORI

2019/04/25 08:26

ご回答有り難うございます。 get_usermeta()というものが存在しているのを知らなかったので勉強になりました。 それを用いればもしかしたら実現できるかもしれません。試行錯誤してみます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問