web-dev-qa-db-ja.com

カテゴリを検索するためのカスタムクエリ

search.phpの結果の上に検索結果の項目としてカテゴリを表示しようとしています。標準のWordPress関数やカテゴリを検索するためのWP Queryはないようで、私は自分自身のMySQLステートメントを書くことにしました。

SELECT DISTINCT t.*, tt.* 
FROM wp_terms AS t 
INNER JOIN wp_term_taxonomy AS tt ON t.term_id = tt.term_id 
WHERE tt.taxonomy IN ('category') AND (t.name LIKE 'hout') 
ORDER BY t.name ASC

上記の例では、検索語は "hout"です。しかし、これは結果を返さないようです。私の質問に何か問題があるのでしょうか。

または、カテゴリを検索結果の項目として含めることができる別の方法を知っていますか。

1
Pim

WP_Term_Queryのラッパーである get_terms() 関数を探しているようです。

そこにすることができます例えばname__likedescription__likeまたはsearchパラメーターを使用してください。

例:

これが彼らがどのような種類のWHEREクエリを生成するかです:

'name__like'        => 'hout'  >>>  (t.name LIKE '%hout%') 

'description__like' => 'hout'  >>>  tt.description LIKE '%hout%'

'search'            => 'hout'  >>>  (t.name LIKE '%hout%') OR (t.slug LIKE '%hout%')
1
birgire