您好我希望相应地为他们的孩子取得所有(父母)类别(假设您没有孙子女)并制作以下结构
<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>
}
答案 0 :(得分:0)
我从get_categories()和wp_list_categories()开始(功能,虽然它可能不适合您的需求,非常灵活),并猜测您必须使用for-循环遍历带有嵌套循环的父类别来处理子代(如伪代码所示)。特别是使用wp_list_categories()
时,您可能无法获得所需的确切结构,但至少可以合理地设置样式。
答案 1 :(得分:0)
正如benny发布的那样,wp_list_categories将是您最好的功能。
也许您应该重新考虑html结构,因为wordpress格式化您的类别列表的方式是在无序列表中,这样如果您的样式无法加载,它将以自然格式呈现。但是,您可以通过将“hierarchical”的值更改为false来更改此行为。
希望这会有所帮助:)
答案 2 :(得分:0)
好吧,我自己也想出了感谢Benny&amp;罗布
我基本上做了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;
}