WP Query 作者模糊搜尋

目錄

我需要的功能是在搜尋時可以輸入關鍵字找到特定作者的文章。由於 WP_Query 預設只能用 user_id 跟 user_nicename 去篩選文章作者,如果使用者輸入的關鍵字並非作者的精準名字就會搜尋不到。

我採用的解法是先用 WP_User_Query 找出符合條件的 user_id 後再丟進去 WP_Query 裡面當參數,這樣就能很彈性的針對作者的特定欄位來做搜尋,像是 display_nameuser_login 以及 email 等欄位進行搜尋。

在使用 WP_User_Query 可以帶入三個參數,第一個是 search,也就是要比對的關鍵字,比較特別的地方是它可以帶入萬用字元 * 來判斷比對的關鍵字是在開頭、結尾還是中間,第二個參數是 search_columns,也就是要進行比對的使用者欄位,可以用陣列帶入多個欄位。

最後是 fields,也就是查詢完成後要回傳的資料內容,由於 WP_Query 的參數可以直接吃使用者 ID 的陣列,因此直接回傳 ID 是最方便的。在取得 WP_User_Query 物件後,最後用 get_reults() 方法就能得到查詢結果。

$args_user = array(
	'search'         => '*' . $keyword . '*',
	'search_columns' => array( 'user_login', 'user_email', 'display_name', 'first_name', 'last_name' ),
	'fields'         => 'ID',
);

$users = new WP_User_Query( $args_user );

$args_post_author = array(
	'posts_per_page' => 20,
	'post_type'      => 'mcs',
	'author__in'     => $users->get_results(),
);

$query_post_author = count( $users->get_results() ) > 0 ? new WP_Query( $args_post_author ) : 0; // 確保符合的作者再進行查詢

目錄

賴俊吾 / Oberon Lai
賴俊吾 / Oberon Lai

現為全職 WordPress 工程師,網站開發經歷 11 年,專攻前端工程與 WordPress 佈景主題、外掛客製化開發

訂閱電子報

Hi,我是 Oberon,我會固定在每週五早上發送接案心得以及與 WordPress 相關的電子報,同時也會分享一些實用的開發知識,讓你在 WordPress 的接案路上不孤單!

覺得文章對你有幫助再幫我鼓個掌吧!

相關文章

Gravity Form 取得表單送出資料

WooCommerce 推播通知外掛近期的功能建議是加入支援 Gravity Form 外掛,讓填表者送出資料後可以收到簡訊或是 ...

LearnDash 手動開通課程瀏覽權限

在某些情境下我們需要透過程式碼來開通 LearnDash 的課程瀏覽權限,像是有些免費課程需要填表單才能觀看,或是連續登入 N 日...

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料

專注於分享 WordPress 開發、接案技巧、專案管理等自由工作者必備知識與心得

© 2023 想點創意科技有限公司

想點創意科技有限公司 | 統一編號 90516823
Designed by Hend Design | 隱私權政策

訂閱電子報

Hi,我是 Oberon,我會固定在每週五早上發送接案心得以及與 WordPress 相關的電子報,同時也會分享一些實用的開發知識,讓你在 WordPress 的接案路上不孤單!