我需要建立一个'公告'横幅显示5个最新帖子,其中一个MUST
是最新的时事通讯。
我想做什么:最新的4个帖子,不包括时事通讯类别+最新的时事通讯帖子作为第5个帖子。
这怎么可能?
我尝试了tax_query
,但之后只显示了newsletter
类别,并没有限制该特定类别。
我尝试排除newsletter
类别中的所有帖子ID,但如果最近5个帖子中没有新闻简报,则根本不会显示最新的简报。
代码:
$category_id = get_cat_ID('Newsletter');
$latest_newsletter = query_posts("cat=$category_id&order_by=date");
$exclude_ids = [];
$count = 0;
while (have_posts()) : the_post();
$post = get_post();
if($count > 0) {
$exclude_ids[] = $post->ID;
}
$count++;
endwhile;
wp_reset_query();
query_posts(['posts_per_page' => '4', 'order_by' => 'date', 'post__not_in' => $exclude_ids]); if (have_posts()) : ?>
<div class="news-announcement">
<h3>ANNOUNCEMENT</h3>
<div id="ticker" class="ticker">
<ul>
<?php while ( have_posts() ) : the_post(); ?>
<li><a href="<?php the_permalink(); ?>" title="Continue reading"> continue reading...</a>
<?php the_title( ); ?></li>
<?php endwhile; ?>
</ul>
</div>
</div>
有什么想法吗?
答案 0 :(得分:0)
您可以创建两个单独的查询对象来实现您想要的效果。 例如
//this is just an example not complete code
// write you actual query in the array passed to WP_Query
$latest_articles = new WP_Query( array('order' => 'DESC', 'posts_per_page ' => 4) );
while ( $latest_articles->have_posts() ) :
// Loop over the posts and show the content
$newletter_article = new WP_Query( array('order' => 'DESC', 'posts_per_page'=> 1, 'cat' => 1 ) );
while ( $newletter_article->have_posts() ) :
//show the newletter article