Wordpress - 在搜索结果中显示类别

时间:2014-05-12 13:37:41

标签: php mysql wordpress

我有一个搜索结果页面,我需要显示一个类别列表,其中包含匹配的帖子数量(仅包含结果中的帖子的类别)。还必须在类别名称中搜索关键字。实现这一目标最方便的方法是什么?目前我有这个:

$results = $wpdb->get_results( '
SELECT COUNT(*) as count
FROM wp_posts
JOIN wp_term_relationships ON wp_posts.id = wp_term_relationships.object_id
JOIN wp_terms ON wp_term_relationships.term_taxonomy_id = wp_terms.term_id
WHERE post_type = "my_type"
AND (
    post_content LIKE "%'.mysql_real_escape_string($_GET['s']).'%"
    OR post_title LIKE "%'.mysql_real_escape_string($_GET['s']).'%"
    OR wp_terms.name LIKE "%'.mysql_real_escape_string($_GET['s']).'%"
)
AND wp_term_relationships.term_taxonomy_id = 8'

如果我尝试按类别搜索帖子并仅加入term_relationships,则可以使用,但不包括类别名称。长查询不起作用。我在这里做错了什么?

2 个答案:

答案 0 :(得分:1)

我非常确定默认WordPress搜索包含所有帖子/帖子类型。如果您只想在搜索页面上列出您的类别,则可以使用内置函数,例如wp_list_categories() WordPress Codex,其中包含您需要的所有内容。如果您需要,可以create a search template,如果您需要更多自定义,可以使用template tag is_search() with pre_get_posts()

答案 1 :(得分:-1)

我已经在搜索中创建了可以解决此问题的插件“存档页面”。

Lite版本会将搜索直接重定向到存档页面,无论是类别,帖子标签还是作者。

Pro版本将具有一个附加选项,可在搜索结果中显示存档页面并添加与存档页面相关的查询。此外,它还支持自定义分类法和自定义帖子类型档案。

Lite版本的链接:  https://wordpress.org/plugins/archive-pages-in-search-lite/

专业版链接: https://www.codester.com/items/14787/archive-pages-in-search-pro-wordpress-plugin.html?ref=mkhaledche