我如何列出类别以及这些类别下的帖子的常见类别?

时间:2014-04-08 作者:Bryan White

我有四个类别:

2013年,2012年,2011年,2010年,这些类别包含同样分类的帖子

因此,基本上有一堆帖子被分类(2013年,A类),(2013年,B类),(2012年,A类),(2012年,C类),等等

无需将A类、B类和C类添加为2013、2012、2011和2010年下的四组子类别,我是否可以通过编程方式列出这些独特的子类别,并在每年下发布帖子,以便将它们列为:

2013年,A类,B类,2011年,A类,B类2010年,是否将这些子类别链接到各自的类别页面?

1 个回复
最合适的回答,由SO网友:Adam Walter 整理而成

未经测试,但我认为这会成功!

<?php

// Get date Categories
$date_cats = get_categories(array(
    \'include\' => \'1,2,3,4\'
));

// Loop through date categories
foreach($date_cats as $date_cat) :

    // Get link of current date category
    $date_cat_link = get_category_link( $date_cat->cat_ID ); ?>

    <ul>
        <li><a href="<?php echo $date_cat_link; ?>"><?php echo $date_cat->name; ?></a>
            <ul>
            <?php
            // Get ID of current date category
            $date_cat_id = $date_cat->cat_ID;

            // Get ABC categories
            $abc_cats = get_categories(array(
                \'include\' => \'5,6,7\'
            ));

            // Loop through ABC catagories
            foreach($abc_cats as $abc_cat) :

                // Get ID of current ABC category
                $abc_cat_id = $abc_cat->cat_ID;
                // Get link of current ABC category
                $abc_cat_link = get_category_link( $abc_cat->cat_ID );

                // Run a query for posts that are in this date category AND this ABC category
                $query = new WP_Query( array(
                    \'posts_per_page\' => -1,
                    \'category__and\' => array( $date_cat_id, $abc_cat_id )
                ));

                // If there are posts, show this ABC category\'s name and link
                if ( $query->have_posts() ) { ?>

                <li><a href="<?php echo $abc_cat_link; ?>"><?php echo $abc_cat->name; ?></a></li>

                <?php } ?>

            <?php endforeach; ?>
            </ul>
        </li>
    </ul>

<?php endforeach; ?>

结束

相关推荐

在Pre_Get_Posts内修改的查询中包括默认和自定义发布类型

我想在author arhive页面中包含自定义帖子类型。我尝试了本文中讨论的方法:Including post_type = 'wiki' in author archivesadd_action( \'pre_get_posts\', \'custom_post_author_archive\' ); function custom_post_author_archive( &$query ) { if ( $query->is_autho