用于搜索类别的自定义查询

时间:2016-09-18 作者:Pim

我正在尝试将类别作为搜索结果项显示在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”。然而,这似乎没有返回任何结果。你能看出我的问题吗?

或者你知道我可以将类别作为搜索结果项的另一种方式吗?

1 个回复
最合适的回答,由SO网友:birgire 整理而成

听起来你在找get_terms() 函数的包装器WP_Term_Query.

在那里,您可以使用name__like, description__likesearch 参数。

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%\')

相关推荐

将wp_Query替换为wp_User_Query

我在插件中制作了一些订阅者档案和单曲(个人资料页),其中我还包括了一个“用户单曲”模板,通过template_include. 不过,我正在尝试从插件中删除一些模板,以使其使用主题模板。我用了locate_template( \'single.php\' ) 从活动主题中选择单个模板。我没有使用全局wp_query 在本例中显示我的内容,但页面显示了基于查询默认值的循环(十篇帖子)。我想知道的是,我是否可以完全放弃默认查询,用wp_user_query 我可以将查询到的用户ID输入其中。然后我想筛选the