我有一个独特的用例,我似乎找不到一个在线示例。我可能想得太多了。
我有一个自定义的分类法,叫做“受赠人”创建博客帖子时,作者可以选择被授权人。
我有“浏览方式”页面,这样您就可以“按被授权人浏览”这些页面此页面使用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列出这些被查询帖子的分类法。
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: 注意拼写错误,如果有!