我已经创建了一个自定义帖子,其中包括书籍、食品等类别,并制作了一些子类别,如食品猫、比萨饼、快餐。但当我在侧栏中显示它们时,它显示的和子类别相同。就像:
书
.食品
披萨
.快餐
我希望它们显示如下:
书
.食品
-比萨饼
-快餐
这是我的函数代码。php
add_action(\'init\', \'products_register\');
function products_register() {
$labels = array(
\'name\' => _x(\'products\', \'post type general name\'),
\'singular_name\' => _x(\'Products Item\', \'post type singular name\'),
\'add_new\' => _x(\'Add New\', \'products item\'),
\'add_new_item\' => __(\'Add New products Item\'),
\'edit_item\' => __(\'Edit products Item\'),
\'new_item\' => __(\'New products Item\'),
\'view_item\' => __(\'View products Item\'),
\'search_items\' => __(\'Search products\'),
\'not_found\' => __(\'Nothing found\'),
\'not_found_in_trash\' => __(\'Nothing found in Trash\'),
\'parent_item_colon\' => \'\'
);
$args = array(
\'labels\' => $labels,
\'public\' => true,
\'publicly_queryable\' => true,
\'show_ui\' => true,
\'query_var\' => true,
//\'menu_icon\' => get_stylesheet_directory_uri() . \'/article16.png\',
\'rewrite\' => true,
\'capability_type\' => \'post\',
\'hierarchical\' => false,
\'menu_position\' => null,
\'supports\' => array(\'title\',\'editor\',\'thumbnail\')
);
register_post_type( \'products\' , $args );
register_taxonomy("productcategory", array("products"), array("hierarchical" => true, "label" => "Product Category", "singular_label" => "Product Category", "rewrite" => true));
}
以下是我在侧边栏上显示类别的代码:
<?php
$taxonomy = \'productcategory\';
$terms = get_terms($taxonomy); // Get all terms of a taxonomy
if ( $terms && !is_wp_error( $terms ) ) :
?>
<ul>
<?php foreach ( $terms as $term ) { ?>
<li><a href="<?php echo get_term_link($term->slug, $taxonomy); ?>"><?php echo $term->name; ?></a></li>
<?php } ?>
</ul>
<?php endif;?>
SO网友:Patrice Poliquin
您可以使用WordPress功能wp_list_categories($args) 来创造你想要的东西。
注册分类法时,还需要设置hierarchical
到true
以便能够嵌套自定义帖子类型类别。
之后,您可以创建这样的函数(使用basics$args):
<?php
$args = array(
\'hierarchical\' => true,
\'taxonomy\' => \'productcategory\',
\'hide_empty\' => false
);
wp_list_categories($args);
?>
并不是说我们正在使用
\'taxonomy\' => \'productcategory\',
参数指示函数查看分类法本身。
您的HTML输出如下所示。
<ul>
<li class="cat-item cat-item-18"><a href="http://wordpress.local/productcategory/books/" >Books</a></li>
<li class="cat-item cat-item-19"><a href="http://wordpress.local/productcategory/foods/" >Foods</a>
<ul class=\'children\'>
<li class="cat-item cat-item-21"><a href="http://wordpress.local/productcategory/fastfood/" >Fastfood</a></li>
<li class="cat-item cat-item-20"><a href="http://wordpress.local/productcategory/pizza/" >Pizza</a></li>
</ul>
</li>
</ul>
按照您最初的开发方式,可以得到一个列表。但它不会显示为层次结构元素。
之后,您只需使用CSS来添加arroundpadding
在…上.children
班
希望能有所帮助。