我有一個自定義後類型institutions
是關聯用戶。獲取與自定義後類型相關聯的所有用戶在WordPress
每當我添加一個新用戶,我可以選擇哪些機構,他/她也藉助Advanced Custom Fields
插件相關。
既然設立完成後,我試圖顯示與我正在觀看(single-institutions.php
)
機構我不能使用WP_Query()
相關聯的所有用戶的列表,因爲它不會讓我得到用戶和我不能使用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查詢來實現此目的?
編輯:我已經切換到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
它工作。我不得不使用'LIKE'代替'='代替'meta_compare'。謝謝。 – Halnex
@Halnex啊,是的,我錯過了這是一個序列化數組的事實。請注意以下幾點注意事項: 1)如果您有大量數據並可能影響網站性能,那麼使用LIKE運算符執行元查詢可能會很昂貴。這通常很好,但如果你遇到問題,這可能是需要看的東西。 2)你應該在'meta_value'中加雙引號,例如''meta_value'=>'''。$ post-> ID。'「''。這樣當你打算選擇「9」等時,你將避免選擇像「19」這樣的值。 –