Wordpress - 在结果中搜索和显示类别(NOT POSTS!)

问题描述 投票:0回答:1

我在WordPress上配置了很多类别,我希望有一种方法让用户搜索(以自由文本输入形式)特定类别。

然后,在结果页面中,我只想列出这些类别(不是POSTS!)并显示指向类别页面的链接。

有没有办法(或插件方式)轻松实现这一目标?

UPDATE

还有如何搜索嵌套类别?我的意思是,我有类别A,有很多子类别。可以只搜索那些子类别(知道A的ID)?

更新:解决方案

正如@AhmadAssaf建议我最终自己提出查询。在这里,我发布了我在网络中使用的代码:

更新

JOIN必须使用taxonomies.term_id而不是taxonomies.term_taxonomy_id

function getCategories($string) {
    global $wpdb;
    $categories = $wpdb->get_results("
        SELECT terms.term_id, terms.name, taxonomies.description
        FROM wp_terms as terms
        LEFT JOIN wp_term_taxonomy as taxonomies ON taxonomies.term_id = terms.term_id
        WHERE taxonomies.taxonomy = 'category'  && terms.name LIKE '%".$string."%'
        GROUP BY taxonomies.term_id
    ");
    return $categories;
}
php wordpress wp-list-categories
1个回答
3
投票

您可以发出自定义mysql查询以获取其名称与您传递的字符串匹配的类别的所有类别详细信息

function getCat($string) {
    global $wpdb;
    $cat= $wpdb->get_results("
        SELECT *
    FROM wp__term_relationships
    LEFT JOIN wp__term_taxonomy
       ON (wp__term_relationships.term_taxonomy_id = wp__term_taxonomy.term_taxonomy_id)
    LEFT JOIN wp__terms on wp__term_taxonomy.term_taxonomy_id = wp__terms.term_id
    WHERE wp__term_taxonomy.taxonomy = 'category'  && wp__terms.name LIKE '%".$string."%'
    GROUP BY wp__term_taxonomy.term_id
    ");
return $cat;

}

© www.soinside.com 2019 - 2024. All rights reserved.