wordpress获取当前分类的子分类

2013-10-28 737 0

1.现在function.php里面添加下面的代码

function get_category_root_id($cat)
{
$this_category = get_category($cat); // 取得当前分类
while($this_category->category_parent) // 若当前分类有上级分类时,循环
{
$this_category = get_category($this_category->category_parent); // 将当前分类设为上级分类(往上爬)
}
return $this_category->term_id; // 返回根分类的id号
}

2.然后在页面要显示二级分类的地方粘贴下面这段代码即可

<?php
if(is_single()||is_category())
{
if(get_category_children(get_category_root_id(the_category_ID(false)))!= "" )
{
echo '<ul>';
echo wp_list_categories("child_of=".get_category_root_id(the_category_ID(false)). "&depth=0&hide_empty=0&title_li=&orderby=id&order=ASC");
echo '</ul>';
}
}
?>

孙级分类用介个:

<?php wp_list_categories("child_of=".get_category_root_id(the_category_ID(false)). "&depth=0&hide_empty=0&title_li="); ?>
wp_list_cats(“child_of=” . get_category_root_id($cat) . “&depth=0&hide_empty=0″)
‘show_option_all’ => “, 无链接的分类
‘orderby’ => ‘name’, 按照分类名排序
‘order’=> ‘ASC’, 升序
‘show_last_update’ => 0, 不显示分类中日志的最新时间戳
‘style’ => ‘list’, 用列表显示分类
‘show_count’ => 0, 0, 不显示分类下的日志数
‘hide_empty’ => 1, Displays only Categories with posts
‘use_desc_for_title’ => 1, 显示分类链接中 title 标签的分类描述
‘child_of’ => 0, 子分类无限制
‘feed’ => ”, 无 feed
‘feed_image’ => ”, 无 feed 图片显示
‘exclude’ => ”, 不在分类列表中显示该分类
‘hierarchical’ => true, 分层显示父/子分类
‘title_li’ => __(‘Categories’), 在列表前作为标题显示分类
‘echo’ => 1 显示分类

延伸一下,调取父级页面的子页面:

<?php
if($post->post_parent)
    $children = wp_list_pages("title_li=&child_of=".$post->post_parent."&echo=0");
else
    $children = wp_list_pages("title_li=&child_of=".$post->ID."&echo=0");
if ($children) {
    echo '<ul>';
        echo $children;
    echo '</ul>';
} ?>

再延伸一下,在 Single.php 页面获取当前文章所属分类的一级分类的id
先插入函数:

function get_category_root_id($cat)  
{  
 $this_category = get_category($cat);  // 取得当前分类  
 while($this_category->category_parent)   // 若当前分类有上级分类时,循环  
 {  
  $this_category = get_category($this_category->category_parent);   // 将当前分类设为上级分类(往上爬)  
 }  
 return $this_category->term_id; // 返回根分类的id号  
}

function get_article_category_ID() { 
    $category = get_the_category();
    return $category[0]->cat_ID;
}

在 Single.php 页面这样调用:

<?php echo get_category_root_id(get_article_category_ID()); ?>

感谢:
http://www.l1gc.com/wordpress%E5%A6%82%E4%BD%95%E6%98%BE%E7%A4%BA%E9%A1%B6%E7%BA%A7%E7%88%B6%E7%B1%BB%E7%9A%84%E5%AD%90%E7%B1%BB%E3%80%81%E5%BD%93%E5%89%8D%E6%96%87%E7%AB%A0%E7%88%B6%E7%B1%BB%E7%9A%84%E5%AD%90%E5%88%86-2/
http://mengqing.org/archives/get-root-cat-id.html

相关文章

MySQL 设置优化记录
来自 WPJAM 的修改,给图片文件名增加时间戳
wordpress 博客使用 CloudFlare 的页面规则缓存设置教程
Better Search Replace – 简单强大易用的数据库替换工具
WordPress获取文章所有图片和图片数量
删除 WooCommerce 产品页中的简介 – Remove Woocommerce Product Short Description

发布评论

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据