我正在尝试将类别作为搜索结果项显示在search.php
后果似乎没有标准的WordPress函数或WP查询来搜索类别,所以我想我应该编写自己的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”。然而,这似乎没有返回任何结果。你能看出我的问题吗?
或者你知道我可以将类别作为搜索结果项的另一种方式吗?
最合适的回答,由SO网友:birgire 整理而成
听起来你在找get_terms()
函数的包装器WP_Term_Query
.
在那里,您可以使用name__like
, description__like
或search
参数。
Example:
这是什么样的
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%\')