私は、関連ユーザーであるカスタム投稿タイプinstitutions
を持っています。WordPressでカスタム投稿タイプに関連付けられたすべてのユーザーを取得します。
新しいユーザーを追加するたびに、Advanced Custom Fields
プラグインを使用して、関連する機関を選択することができます。
今すぐセットアップが完了していることを、私は現在、それは私が取得することができませんので、私はWP_Query()
を使用することはできません(single-institutions.php
)
を表示しています機関に関連付けられているすべてのユーザのリストを表示しようとしていますユーザーと私はwp_list_authors()
を使用できません。なぜなら、それはmeta_query
を許可しないからです。
私は旧式のmysqlクエリを使用して残っています。
しかし、私は適切な結果を得るために複数のテーブルを照会する必要があるため、どのように進めるべきかわかりません。
wp_users: ID
wp_usermeta
user_id
meta_key: institution
meta_value: a:1:{i:0;s:4:"2875";} // "2875" is the ID of the institution the user is associated with
これを直接mysqlクエリで実現するにはどうすればよいですか?
EDIT:代わりにWP_User_Query()
に切り替えましたが、私はそれが存在するのかどうかはわかりませんでした。しかし、私は何を入れるべきか分かりません。meta_value
$args = array(
'role' => 'Author',
'order' => 'ASC',
'orderby' => 'display_name',
'who' => 'authors',
'exclude' => [1, 7],
'count_total' => true,
'meta_key' => 'institution',
'meta_value' => $post->ID
);
// The User Query
$user_query = new WP_User_Query($args);
// The User Loop
if (! empty($user_query->results)) {
foreach ($user_query->results as $user) {
echo $user->display_name . '<br>';
}
} else {
// no users found
}
今は何も表示されません。クエリから「meta_value」を削除すると、どの機関にも関連するすべてのユーザーがすべてのページに表示されます。
現在表示中の施設ID($post->ID
)に一致するように絞り込むにはどうすればよいですか?
meta_value
の値はwp_usermeta
のテーブルの値です。それは連載されています。最後にIDを取得するために何か特別な処理を行う必要がありますか?
a:1:{i:0;s:4:"2875";}
ありがとう、本当に役に立ちました。 'WP_User_Query()'が存在しないということはありませんでした。しかし、私は 'meta_value'のために何を使用するのか不明です - 私は私の投稿を更新しました。 – Halnex
それは働いた。私は 'meta_compare'に' = 'の代わりに' LIKE'を使わなければなりませんでした。ありがとうございました。 – Halnex
@Halnexああ、正しい、私はこれがシリアル化された配列であるという事実を忘れてしまった。 1)多くのデータを持ち、サイトのパフォーマンスに影響を与える可能性がある場合、LIKE演算子を使用してメタクエリを実行するとコストが高くなる可能性があります。通常は問題ありませんが、問題が発生した場合は、これを確認する必要があります。 2) 'meta_value' => '"' $ post-> ID '' ''のように、あなたの' meta_value'に二重引用符を含める必要があります。このようにすると、 '' 9 "'などを選択するときに '' 19 ''のような値を選択することは避けられます。 –