admin管理员组文章数量:1434889
I need more control over the category listing output, so I'm using get_categories()
, instead of wp_list_categories()
.
This function returns a flat array of objects ordered by a certain attribute. How can I build a hierarchical list from it like wp_list_categories()
does?
I need more control over the category listing output, so I'm using get_categories()
, instead of wp_list_categories()
.
This function returns a flat array of objects ordered by a certain attribute. How can I build a hierarchical list from it like wp_list_categories()
does?
2 Answers
Reset to default 4The most ideal solution for walking over the data is to use the WordPress walker class.
http://codex.wordpress/Function_Reference/Walker_Class
You won't find many an example around the web for using it, but one was given by Scribu here.
http://scribu/wordpress/extending-the-category-walker.html
You can also look to the classes WordPress uses to extend the walker as further examples.
http://core.trac.wordpress/browser/tags/3.0.1/wp-includes/classes.php
Hope that helps..
How to build a hierarchical tree from get_categories
See this Stack Overflow question. In the answer Jan Fabry does it like this:
$categories = get_categories();
// First index all categories by parent id, for easy lookup later
$cats_by_parent = array();
foreach ($categories as $cat)
{
$parent_id = $cat->category_parent;
if (!array_key_exists($parent_id, $cats_by_parent))
{
$cats_by_parent[$parent_id] = array();
}
$cats_by_parent[$parent_id][] = $cat;
}
// Then build a hierarchical tree
$cat_tree = array();
function add_cats_to_bag(&$child_bag, &$children)
{
global $cats_by_parent;
foreach ($children as $child_cat)
{
$child_id = $child_cat->cat_ID;
if (array_key_exists($child_id, $cats_by_parent))
{
$child_cat->children = array();
add_cats_to_bag($child_cat->children, $cats_by_parent[$child_id]);
}
$child_bag[$child_id] = $child_cat;
}
}
add_cats_to_bag($cat_tree, $cats_by_parent[0]);
本文标签:
版权声明:本文标题:customization - Reproducing hierarchical list output from wp_list_categories(), using get_categories() 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.betaflare.com/web/1745622021a2666740.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论