web-dev-qa-db-fra.com

Requête personnalisée pour rechercher dans les catégories

J'essaie d'afficher des catégories en tant qu'éléments de résultats de recherche en plus des résultats search.php. Il ne semble pas exister de fonction WordPress standard ni de WP Query pour effectuer une recherche dans les catégories. J'ai donc pensé écrire ma propre déclaration 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

Dans l'exemple ci-dessus, le terme recherché est "hout". Cependant, cela ne semble pas donner de résultats. Pouvez-vous voir quelque chose de mal avec ma requête?

Ou connaissez-vous une autre manière d’inclure des catégories dans les résultats de recherche?

1
Pim

On dirait que vous recherchez la fonction get_terms() qui est un wrapper pour WP_Term_Query.

Là vous pouvez par exemple utilisez les paramètres name__like, description__like ou search.

Exemple:

Voici quel type de requête WHERE ils génèrent:

'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