Php Wordpress-搜索和显示结果中的类别(不是帖子!)

Php Wordpress-搜索和显示结果中的类别(不是帖子!),php,wordpress,wp-list-categories,Php,Wordpress,Wp List Categories,我在WordPress上配置了很多类别,我想要一种让用户(以自由文本输入形式)搜索特定类别的方法 然后,在结果页面中,我只想列出那些类别(不是帖子!),并显示指向类别页面的链接 有没有一种方法(或插件方法)可以轻松实现这一点 更新 还有,搜索嵌套类别怎么样?我的意思是,我有一个类别,有很多子类别。是否可以只搜索那些子类别(知道A的ID) 更新:解决方案 正如@AhmadAssaf建议的那样,我最终提出了自己的问题。在这里,我发布了我在我的网站中使用的代码: 已更新 连接必须使用taxonomie

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

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

有没有一种方法(或插件方法)可以轻松实现这一点

更新

还有,搜索嵌套类别怎么样?我的意思是,我有一个类别,有很多子类别。是否可以只搜索那些子类别(知道A的ID)

更新:解决方案

正如@AhmadAssaf建议的那样,我最终提出了自己的问题。在这里,我发布了我在我的网站中使用的代码:

已更新

连接必须使用taxonomies.term\u id而不是taxonomies.term\u taxonomy\u 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;
}

您可以发出一个自定义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;

}

您可以发出一个自定义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;

}

您可以发出一个自定义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;

}

您可以发出一个自定义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;

}

这会有帮助吗@GhazanfarMir我不想在给定类别中搜索帖子。我需要搜索类别创建一个自定义搜索页面,在其中输入查询字符串并在
获取类别
上进行过滤,或者启动一个自定义mySQLquery@AhmadAssaf谢谢你的回答!我曾考虑对get_category()的结果进行迭代和过滤,但如果要处理的类别太多,这可能会对性能造成不良影响,我对此感到震惊。你能给我一个使用自定义MySQL查询的例子吗?非常感谢@AhmadAssaf!表名,其中不需要仅使用一个下划线和术语_关系表。尽管如此,您还是引导我找到了解决方案,因此我会将您的答案标记为正确!另外,我会为每个想要它的人发布最终查询。这会有帮助吗@GhazanfarMir我不想在给定类别中搜索帖子。我需要搜索类别创建一个自定义搜索页面,在其中输入查询字符串并在
获取类别
上进行过滤,或者启动一个自定义mySQLquery@AhmadAssaf谢谢你的回答!我曾考虑对get_category()的结果进行迭代和过滤,但如果要处理的类别太多,这可能会对性能造成不良影响,我对此感到震惊。你能给我一个使用自定义MySQL查询的例子吗?非常感谢@AhmadAssaf!表名,其中不需要仅使用一个下划线和术语_关系表。尽管如此,您还是引导我找到了解决方案,因此我会将您的答案标记为正确!另外,我会为每个想要它的人发布最终查询。这会有帮助吗@GhazanfarMir我不想在给定类别中搜索帖子。我需要搜索类别创建一个自定义搜索页面,在其中输入查询字符串并在
获取类别
上进行过滤,或者启动一个自定义mySQLquery@AhmadAssaf谢谢你的回答!我曾考虑对get_category()的结果进行迭代和过滤,但如果要处理的类别太多,这可能会对性能造成不良影响,我对此感到震惊。你能给我一个使用自定义MySQL查询的例子吗?非常感谢@AhmadAssaf!表名,其中不需要仅使用一个下划线和术语_关系表。尽管如此,您还是引导我找到了解决方案,因此我会将您的答案标记为正确!另外,我会为每个想要它的人发布最终查询。这会有帮助吗@GhazanfarMir我不想在给定类别中搜索帖子。我需要搜索类别创建一个自定义搜索页面,在其中输入查询字符串并在
获取类别
上进行过滤,或者启动一个自定义mySQLquery@AhmadAssaf谢谢你的回答!我曾考虑对get_category()的结果进行迭代和过滤,但如果要处理的类别太多,这可能会对性能造成不良影响,我对此感到震惊。你能给我一个使用自定义MySQL查询的例子吗?非常感谢@AhmadAssaf!表名,其中不需要仅使用一个下划线和术语_关系表。尽管如此,您还是引导我找到了解决方案,因此我会将您的答案标记为正确!另外,我会为每个想要它的人发布最终查询。