wordpress调用指定分类下的子分类
使用wordpress建网站时,在侧边栏往往需要调用某个指定分类下的子分类,这样只要在网站后台添加分类后,网站界面就会自动的调用显示出来。(要想在不同的分类调用各自的子分类,请学习wordpress不同分类调用当前子分类教程。)
以下为wordpress调用批定分类下的子分类的代码:
<?php wp_list_categories('orderby=ID&order=ASC&style=list&use_desc_for_title =0&title_li=0&show_option_none=0&show_count=1&hierarchical=1&hide_empty=0&depth=1&child_of=51'); ?>
效果如下图:
代码解释:sort_column=name为调用分类名;
optioncount=1为调用分类下的文章数量;
hide_empty=0为是否隐藏没有文章的分类;
child_of=51为调用的父分类ID号,需要改为你自己的父分类的ID号。
以上的代码是同时调用出子分类名和子分类下的文章数,如果只想调用子分类名,不需要显示文章数量,可以使用以下的代码:(更多修改请参考wordpress程序开发手册)
<?php wp_list_categories('orderby=ID&order=ASC&style=list&use_desc_for_title =0&title_li=0&show_option_none=0&show_count=0&hierarchical=1&hide_empty=0&depth=1&child_of=51'); ?>
调用动态的子分类
<?php wp_list_categories('orderby=ID&order=ASC&style=list&use_desc_for_title =0&title_li=0&show_option_none=0&show_count=0&hierarchical=1&hide_empty=0&depth=1&child_of='.$catid01.''); ?>
效果如下图:
更灵活的调用指定分类下的子分类的方法:
<?php
$args=array(
'type' => 'post',
'child_of'=> $catid01,
'parent' => $catid01,
'orderby' => 'ID',
'order' => 'ASC',
'hide_empty'=>'0',
'hierarchical' => 1,
'exclude' => '',
'include' => '',
'number' => '',
'pad_counts' => false
);
$categories=get_categories($args);
$r=1;
foreach($categories as $category) {?>
<li><a href="<?php echo get_category_link( $category->term_id );?>"><?php echo $category->name;?></a></li>
<?php $r++;
if($r>15)
break;
}
?>
补充:如果调用的子分类下还有子子分类,但只想调用子分类不想显示子子分类,可以在上面的代码里加上depth=1;
<?php wp_list_cats('sort_column=name&optioncount=0&hierarchical=1&depth=1&hide_empty=0&child_of=150'); ?>
如果在调用多个子分类时与其它代码产生冲突,可以使用以下的代码来调用 :
<div class="sub-menu hide" id="sub-menu">
<?php for($i=0;$i<count($catidarr);$i++){?>
<div class="inner-box">
<?php
$args=array(
'type' => 'post',
'child_of'=> $catidarr[$i],
'parent' => '',
'orderby' => 'ID',
'order' => 'ASC',
'hide_empty'=>'0',
'hierarchical' => 1,
'exclude' => '',
'include' => '',
'number' => '',
'pad_counts' => false
);
$categories=get_categories($args);
$k=1;
foreach($categories as $category) {?>
<dl>
<dt> <a href="<?php echo get_category_link( $category->term_id );?>"> <strong><?php echo $category->name;?></strong></a> </dt>
<?php if (have_posts()) : ?>
<?php query_posts('cat='.$category->term_id.'&ignore_sticky_posts=1&showposts=9'); ?>
<?php while (have_posts()) : the_post(); ?>
<dd><a href="<?php the_permalink() ?>"><?php the_title(); ?></a></dd>
<?php endwhile;?>
<?php endif; wp_reset_query(); ?>
</dl>
<?php
$k++;
if($k>15)
break;
}?>
</div>
<?php }?>
</div>