WordPress的类别和其子
问题描述:
您好我正在寻找相应地获得所有(父)类别与子女(假设你没有孙子),然后进行以下结构WordPress的类别和其子
<div class="box">
<h3><a href="#">Parent Category I</a></h3>
<ul>
<li><a href="#">sub cat 1</a></li>
<li><a href="#">sub cat 2</a></li>
<li><a href="#">sub cat 3</a></li>
</ul>
</div>
<div class="box">
<h3><a href="#">Parent Category II</a></h3>
<ul>
<li><a href="#">sub cat 1</a></li>
<li><a href="#">sub cat 2<</a></li>
<li><a href="#">sub cat 3</a></li>
</ul>
</div>
我想这件事情喜欢(不介意的语法),但是我不知道如何获得这些(父)类别和他们的孩子:
$parents = ... ;
foreach($parents as $parent){
<div>
<h3>$parent</h3>
$children = ...;
<ul>
foreach ($children as $child){
<li>$child</li>
}
</ul>
</div>
}
答
好,我理解了它自己无论如何感谢尼&罗布
我basicly了2个功能
function getParentCategories() {
global $wpdb;
$sql = "SELECT term_id as id, name, slug FROM wp_terms where term_id in (SELECT term_id FROM wp_term_taxonomy where parent = 0 and taxonomy = 'category') order by name asc";
$parents = $wpdb->get_results($sql);
return $parents;
}
function getChildCategories($id) {
global $wpdb;
$sql = "SELECT term_id as id, name, slug FROM wp_terms where term_id in (SELECT term_id FROM wp_term_taxonomy where parent = $id and taxonomy = 'category') order by name asc";
$children = $wpdb->get_results($sql);
return $children;
}
答
我与get_categories()和wp_list_categories()(函数开始,虽然它可能不会完美满足您的需求,非常灵活),并猜测你必须使用一个for循环来通过父类别的嵌套循环来处理子代(就像你的伪代码所暗示的那样)。特别是对于wp_list_categories()
,您可能无法获得所需的确切结构,但至少可以合理设计样式。
答
作为benny发布的内容,wp_list_categories将是您使用的最佳功能。
也许您应该重新考虑html结构,因为wordpress格式您的类别列表的方式是在一个无序的列表中,这是因为如果您的样式无法加载它以自然格式呈现。但是,您可以通过将'hierarchical'的值更改为false来更改此行为。
希望这有助于:)