我在WordPress上配置了很多类别,我希望有一种方法让用户搜索(以自由文本输入形式)特定类别。
然后,在结果页面中,我只想列出这些类别(不是POSTS!)并显示指向类别页面的链接。
有没有办法(或插件方式)轻松实现这一目标?
更新
还有如何搜索嵌套类别?我的意思是,我有类别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;
}
答案 0 :(得分: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;
}