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"です。しかし、これは結果を返さないようです。私の質問に何か問題があるのでしょうか。
または、カテゴリを検索結果の項目として含めることができる別の方法を知っていますか。
WP_Term_Query
のラッパーである get_terms()
関数を探しているようです。
そこにすることができます例えばname__like
、description__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%')