我有一个名为“视频”的自定义帖子类型,我正在使用高级自定义字段插件和一个选择字段作为过滤器,以指定帖子部分在我的页面上的显示位置。我有两个栏目,一个叫做“我们的工作”,另一个叫做“特色电影”。我需要每个栏目显示最新的4篇文章,但当我更改每页的posts\\u时,它会影响总数,是否有办法将其限制为每个查询仅4篇?子问题相同的查询可以运行两次吗?我的代码是:
<div class="triple ourWork col-sm-6">
<h2>Our Work</h2>
<?php $loop = new WP_Query( array( \'post_type\' => \'videos\', \'posts_per_page\'
=> 4) ) ?>
<?php while ( $loop->have_posts() ) : $loop->the_post(); /* start the loop */ ?>
<?php if( get_field(\'labeled_as\') == \'our work\' ): ?>
<div class="col-sm-6" id="">
<?php global $post;
$gethref = $post->post_name;
?>
<div class="holder" style="background-image: linear-gradient(0deg,rgb(38, 38, 42, .5),rgb(38, 38, 42, .5)), url(<?php echo the_field(\'screenshot\'); ?>);"><a href="/<?php echo $gethref ?>"><span class="play"><?php the_title(); ?></span></a></div>
<p><?php echo the_field(\'issue_short_description\'); ?></p>
</div>
<?php endif; ?>
<?php endwhile; ?>
</div>
<div class="triple featuredFilms col-sm-6">
<h2>Featured Films</h2>
<?php $loop = new WP_Query( array( \'post_type\' => \'videos\', \'posts_per_page\'
=> 4 ) ) ?>
<?php while ( $loop->have_posts() ) : $loop->the_post(); /* start the loop */ ?>
<?php if( get_field(\'labeled_as\') == \'featured film\' ): ?>
<div class="col-sm-6" id="">
<?php global $post;
$gethref = $post->post_name;
?>
<div class="holder" style="background-image: linear-gradient(0deg,rgb(38, 38, 42, .5),rgb(38, 38, 42, .5)), url(<?php echo the_field(\'screenshot\'); ?>);"><a href="/<?php echo $gethref ?>"><span class="play"><?php the_title(); ?></span></a></div>
<p><?php echo the_field(\'issue_short_description\'); ?></p>
</div>
<?php endif; ?>
<?php endwhile; ?>
</div>
最合适的回答,由SO网友:Aurovrata 整理而成
我想你让事情变得更加困难了,
如果我理解正确,您希望显示最新的4个“视频”,它们在您的第一列中标记为“我们的作品”,在下一列中标记为“特色电影”,因此您应该实际添加custom field parameter to your query,
$args = array(
\'post_type\' => \'videos\',
\'posts_per_page\' => 4 ,
\'meta_key\' => \'labeled_as\',
\'meta_value\' => \'our work\'
);
$loop = new WP_Query( $args);
while ( $loop->have_posts() ) {
//display your work videos
}
$args = array(
\'post_type\' => \'videos\',
\'posts_per_page\' => 4 ,
\'meta_key\' => \'labeled_as\',
\'meta_value\' => \'featured film\'
);
$loop = new WP_Query( $args);
while ( $loop->have_posts() ) {
//display your featured videos
}
/* Restore original Post Data */
wp_reset_postdata();
备注:
- Reset your postdata (上例中的最后一个函数调用)这对于确保WP请求在页面的其余部分正常继续非常重要
我建议您使用自定义字段“label\\u as”来组织“视频”,而不是使用自定义字段taxonomy, 这将允许您在站点开发的后期阶段利用更多的WP功能