wordpress显示当前类别子功能

时间:2011-02-15 07:55:09

标签: php wordpress

wordpress具有函数the_category('');,用于显示分配给当前帖子的所有类别,但我需要获取当前类别的子项而不显示父项。

例如我的帖子有类别类别parent - > category child和the_category;打印:你的邮政猫是:(父母类别,类别儿童)

我需要parint,你的邮政猫是:(类别孩子)而不显示父母。

4 个答案:

答案 0 :(得分:3)

使用get_the_category功能,女巫将返回所有分配到帖子的类别(这意味着所有父母和孩子都是)所以你可以循环通过他们看到女巫一个是父母而女巫一个是孩子并打印一个你想要得到。我建议你在主题函数文件中构建一个函数。


更新

例如,假设您要在single.php主题文件中显示子类别名称,以便执行此操作:

<?php $child_category = post_child_category(get_the_ID()); ?>
<?php if ( $child_category ) echo $child_category->cat_name; ?>

为了使其工作,您需要在主题函数文件中定义post_child_category函数(如果您查看主题目录,您将看到functions.php文件,如果没有,那么您现在可以创建它,所以你要添加以下内容:

if ( ! function_exists( 'post_child_category' ) )
{
    function post_child_category( $id = null )
    {
        if ( $id = null )
            return false;

        $categories = get_the_category( $id );
        if ( count($categories) > 0 )
        {
            return $categories[count($categories)-1];
        } else {
            return false;
        }
    }
}

更新

如果您想显示类别链接,请执行以下操作:

<?php $child_category = post_child_category(get_the_ID()); ?>
    <?php if ( $child_category ) : ?>
        <a href="<?php echo get_category_link($child_category->cat_ID); ?>" title="<?php echo $child_category->cat_name;?>">
            <?php echo $child_category->cat_name;?>
        </a>
    <?php endif;?>

答案 1 :(得分:1)

<ul>    
<?php
        $blogCategoryID = "5"; // current category ID
        $childCatID = $wpdb->get_col("SELECT term_id FROM $wpdb->term_taxonomy WHERE parent=$blogCategoryID");
        if ($childCatID){
            foreach ($childCatID as $kid)
            {
                $childCatName = $wpdb->get_row("SELECT name, term_id FROM $wpdb->terms WHERE term_id=$kid");
                ?>
                <li><a href="<?php echo get_category_link( $childCatName->term_id ); ?>"><?php echo $childCatName->name; ?></a></li>
           <?php
            }
        }

    ?>
</ul>

答案 2 :(得分:0)

答案 3 :(得分:0)

这对我有用

$catID=$wp_query->query_vars['cat'];
$args = array('parent' => $catID);
$categories = get_categories( $args );
foreach($categories as $category) { 
    echo '<li><a href="' . get_category_link( $category->term_id ) . '"  ' . '>' . $category->name.'</a> </li> ';
}