查询WP帖子,然后列出这些帖子的分类

时间:2019-03-04 作者:aturner

我有一个独特的用例,我似乎找不到一个在线示例。我可能想得太多了。

我有一个自定义的分类法,叫做“受赠人”创建博客帖子时,作者可以选择被授权人。

我有“浏览方式”页面,这样您就可以“按被授权人浏览”这些页面此页面使用WP循环中的以下代码片段列出了“被授权人”的所有分类法以及与每个被授权人关联的帖子数量。

         <ul class="list-terms">
            <?php
                $terms = get_terms( 
                    array(
                        \'taxonomy\' => \'grantees\',
                        \'hide_empty\' => false,
                        \'orderby\' => \'name\',
                        \'order\' => \'ASC\'
                    ) 
                );

                foreach($terms as $term) { 
            ?>
            <li>
                <a href="<?php $term_link = get_term_link( $term->term_id ); echo $term_link ;?>">
                    <?php echo $term->name ;?> (<?php echo $term->count; ?>)
                </a>
            </li> 
            <?php };?>
        </ul>
这很有效。然而,我现在需要这样做,以便它只拉一个特定的年份(目前,2018年)。我想根据年份制作归档页。我的客户使用此页面跟踪博客。

有没有办法只查询一个特定的年份(比如2018篇文章),然后让这个页面只显示与2018篇文章相关的分类法?我知道分类法没有附上日期,但我的想法是查询2018篇帖子,然后让WP列出这些被查询帖子的分类法。

1 个回复
SO网友:Qaisar Feroz

使用WP_Query with date_query 并且在循环内仅显示带有\'grantees\' 分类法使用is_object_in_term()

$args = array(
     \'date_query\' => array(
          array(
            \'year\'  => 2018,
          ),
     ),
);
$the_query = new WP_Query( $args );
然后在循环中

// The Loop
if ( $the_query->have_posts() ) {
    echo \'<ul>\';
    while ( $the_query->have_posts() ) {
        $the_query->the_post();

        if( is_object_in_term( $post->ID, \'grantees\' )){

            // show post

            // and then term from taxonomy
            $terms = get_the_terms( get_the_ID(), \'grantees\' );
            echo \'</ul>\';
              foreach($terms as $term) { 

             ?>
                <li>
                    <a href="<?php $echo get_term_link( $term->term_id );?>">
                         <?php echo $term->name ;?> (<?php echo $term->count; ?>)
                   </a>
                </li> 
         <?php
             }  // END foreach()
           echo \'</ul>\';
        } // END if
     } // END while

    echo \'</ul>\';
} else {
    // no posts found
}
/* Restore original Post Data */
wp_reset_postdata();  
我希望这有帮助
Note: 注意拼写错误,如果有!

相关推荐

使用新的WP-Query()从循环中过滤后期格式;

嗨,我目前正在为我的博客构建一个主题。下面的代码指向最新的帖子(特色帖子)。因为这将有一个不同的风格比所有其他职位。然而我想过滤掉帖子格式:链接使用我在循环中定义的WP查询,因为它给我带来了更多的灵活性。我该怎么做呢? <?php $featured = new WP_Query(); $featured->query(\'showposts=1\'); ?> <?php while ($featured->have_post