我将返回页面上的所有帖子。我想每六个帖子逐步显示一个特定类别的帖子。每当这种情况通过时,我都希望在循环中增加,以使页面上该特定类别中的同一条帖子不再重复。
我已经成功地获得了该类别的帖子,该帖子显示在页面的每第六个帖子上。我只是无法使循环正常工作,因此它在页面的每第六个位置上逐渐显示类别中的下一个帖子。目前,它仅在数组中显示相同的第一篇文章。
<?php while ($query->have_posts()) {
if( $query -> post_count > 0 ) {
$postnum = 0;
foreach( $query -> posts as $post ) {
$postnum++;
if( $postnum%5 == 0 ) {
$args = array( 'cat' => 1824, 'posts_per_page' => 1, );
query_posts( $args );
$current_post = 0;
while ( have_posts() ) : the_post();
$current_post++;
echo "CTA Card Specific Info";
endwhile;
}
$query->the_post();
?>```
答案 0 :(得分:1)
您可以将花药installer.setDefaultPageVisible(QInstaller.TargetDirectory, false);
installer.addWizardPage(component, "TargetWidget", QInstaller.TargetDirectory);
嵌套在第一个中,而不必使用query_posts()
,而使用offset
parameter可以跳过已经输出的帖子。我尚未测试此代码,但是类似以下内容的代码可能起作用:
WP_Query
完成内部循环后,请确保调用reset_postdata()
以将查询的上下文更改回主查询。
还值得注意的是,使用$post_count = 0;
$category_count = 0; // for determining offset
$args = array(
'post_type' => 'post',
'posts_per_page' => -1,
'category__not_in' => 1824, // or something like this to prevent duplicates
);
$post_query = new WP_Query ( $args );
if ( $post_query->have_posts() ) {
while ( $post_query->have_posts() ) : $post_query->the_post();
$post_count++;
echo "Regular Post Here";
if ( $post_count % 6 === 0 ) {
$args = array(
'cat' => 1824,
'posts_per_page' => 1,
'offset' => $category_count,
);
$category_query = new WP_Query( $args );
$category_count++;
if ( $category_query->have_posts() ) {
while ( $category_query->have_posts() ) : $category_query->the_post();
echo "CTA Card Specific Info";
endwhile; $post_query->reset_postdata();
}
}
endwhile;
}
可以mess up your pagination。我认为这不会在这里发挥作用,但是如果您发现分页问题可能是罪魁祸首。