我目前正在“砌体网格”中显示最近的帖子。由于存在多个问题,我产生了显示该网格的预定义行的想法(由于设计的布局)。
首先,我在没有动态内容(帖子)的情况下做到了这一切。然后我尝试让WP\\u查询工作。但我不是在一行中显示多篇文章,而是在每行中显示一篇相乘的文章。
我已经做了“更多帖子”按钮,它也显示了如上所述的内容。
我想prev_post()
这种情况下,这种方法可能是错误的,但我在法典中并没有找到更好的方法。
下面我附上部分代码和;屏幕可以更好地显示问题和预期效果。
$wpb_all_query = new WP_Query([
\'post_type\' => \'post\',
\'post_status\' => \'publish\',
\'posts_per_page\' => \'4\',
]);
if ($wpb_all_query->have_posts()) {
while ($wpb_all_query->have_posts()) {
ob_start();
?>
<div class="list_row three_col">
<div class="column column_1_3">
<?php
$wpb_all_query->the_post(); //1 - the newest post
get_template_part(\'partials/list-single-post-masonry\');
?>
</div>
<div class="column column_1_3">
<?php
$wpb_all_query->prev_post(); //2 - older older than 1
get_template_part(\'partials/list-single-post-masonry\');
$wpb_all_query->prev_post(); //3 - older than 2
get_template_part(\'partials/list-single-post-masonry\');
?>
</div>
<div class="column column_1_3">
<?php
$wpb_all_query->prev_post(); //4 - older than 3
get_template_part(\'partials/list-single-post-masonry\');
?>
</div>
</div>
<?php
$generated_content = ob_get_contents();
ob_end_clean();
wp_reset_postdata();
}
}
return $generated_content;
SCREEN no.1 - how it\'s looking now
SCREEN no.2 - how it should look like
最合适的回答,由SO网友:nmr 整理而成
改变$wpb_all_query->prev_post()
到$wpb_all_query->the_post()
.
班WP_Query
does not have prev_post()
方法,它具有next_post()
方法,该方法从结果中获取下一个帖子(设置post
WP\\u Query object的成员),但它不设置全局变量。要获取当前帖子的数据,必须使用$wpb_all_query->post
(例如:$wpb\\U all\\U query->post->post\\U name)或使用$wpb_all_query->setup_postdata()
设置全局变量$post
.
$wpb_all_query->the_post()
相当于:
$wpb_all_query->next_post();
$wpb_all_query->setup_postdata();