如何在wordpress的父类别页面中只显示子类别?

时间:2014-01-28 13:42:32

标签: php wordpress

我想知道如何仅显示父类别的子类别?

有没有办法做到这一点?

我正在使用此代码。

<?php
if (is_category())
{
$cur_cat = get_query_var('cat');
if ($cur_cat) 
   {
    $new_cats = wp_list_categories('echo=false&child_of=' . $cur_cat  .'&depth=1&title_li=&&show_count=1&hide_empty=0');
    echo '<ul>' . $new_cats . '</ul>';
   }
}
?>

我有父类别视频和3种艺术,技术和有趣的儿童类别。

现在我只想在category:videos

中仅显示3个子类别

但我的问题是,还显示了父类别帖子。当我转到任何子类别页面时,会在类别标题上显示此行No categories。 例如,当我转到艺术类别页面时,然后在Art的类别标题上显示此行。

请建议我完整有用的解决方案。

已更新

以下是我的整个category.php模板:

<?php get_header(); ?>

<article class="content">
<div id="marquee-container"><div  title="News Updates…" alt="News Updates…"  style="position:relative;  background-color: #FFF; width:137px; height:19px; z-index:1; border-radius:3px; background-image:url(<?php bloginfo('template_directory'); ?>/images/wp0465f11b_06.png); display:inline-block;"></div><h4 class="marquee-text">New Features Coming Soon...</h4></div>

    <?php if ( have_posts() ) : ?>
        <div class="posts">
            <h1 class="archive-title"><?php printf( __( 'Category: %s', 'OnlinEarn' ), single_cat_title( '', false ) ); ?></h1>

            <?php if ( category_description() ) : // Show an optional category description ?>
            <div class="archive-meta"><?php echo category_description(); ?></div>
            <?php endif; ?>
        <?php $args = array('child_of' => 'videos'); ?>
            <?php
            if (is_category('videos'))
            {
            $cur_cat = get_query_var('cat');
            if ($cur_cat) 
               {
                $new_cats = wp_list_categories('echo=false&child_of=' . $cur_cat  .'&depth=1&title_li=&&show_count=1&hide_empty=0');

               }
            }
        ?>


        <?php /* The loop */ ?>

            <?php while ( have_posts() ) : the_post(); ?>

                <div class="block"><?php get_template_part( 'content', get_post_format() ); ?></div>

            <?php endwhile; ?>


        </div><!--.posts-->


    <?php else : ?>
        <?php get_template_part( 'content', 'none' ); ?>
    <?php endif; ?>

    </article><!-- .content -->

1 个答案:

答案 0 :(得分:1)

<?php get_header(); ?>

<article class="content">
<div id="marquee-container"><div  title="News Updates…" alt="News Updates…"  style="position:relative;  background-color: #FFF; width:137px; height:19px; z-index:1; border-radius:3px; background-image:url(<?php bloginfo('template_directory'); ?>/images/wp0465f11b_06.png); display:inline-block;"></div><h4 class="marquee-text">New Features Coming Soon...</h4></div>

    <?php if ( have_posts() ) : ?>
        <div class="posts">
            <h1 class="archive-title"><?php printf( __( 'Category: %s', 'OnlinEarn' ), single_cat_title( '', false ) ); ?></h1>

            <?php if ( category_description() ) : // Show an optional category description ?>
            <div class="archive-meta"><?php echo category_description(); ?></div>
            <?php endif; endif;

            $category = get_the_category();

            if ($category[0]->category_parent != '' && is_category('video')) :

             //show child categories
            $cur_cat = get_query_var('cat');

                $new_cats = wp_list_categories('echo=false&child_of=' . $cur_cat  .'&depth=1&title_li=&&show_count=1&hide_empty=0');
                echo '<ul>' . $new_cats . '</ul>';

            elseif ( have_posts() ) : while ( have_posts() ) : the_post(); ?>

                <div class="block"><?php get_template_part( 'content', get_post_format() ); ?></div>

            <?php endwhile; ?>


        </div><!--.posts-->


    <?php else : ?>
        <?php get_template_part( 'content', 'none' ); ?>
    <?php endif; ?>

    </article><!-- .content -->