我写了一个WP Query
以在一个列表中显示多种帖子类型的帖子。
它工作正常,但顺序不正确。我想交替加载帖子。见下文:
function carousel_acties_arrangementen() {
ob_start();
$currentID = get_the_ID();
$args = array(
'post_type' => array('actie', 'arrangement'),
'posts_per_page' => '6',
'order' => 'ASC',
'orderby' => 'meta_value',
'post__not_in' => array($currentID),
);
$acties_arrangementen = new WP_Query($args);
?>
<?php if ($acties_arrangementen->have_posts()) : ?>
<?php $teller = 0; ?>
<div dir="rtl" class="carousel_cards acties_arrangementen">
<?php while ($acties_arrangementen->have_posts()) : $acties_arrangementen->the_post(); $fields = (object) get_fields(); ?>
<!-- Make variables -->
<?php $afbeelding = wp_get_attachment_image_src( get_post_thumbnail_id( $post->ID ), "large" ); ?>
<?php $post_type = get_post_type( $post->ID ); ?>
<div style="
<?php if ($post_type == 'actie') { ?>
background-image:linear-gradient(to bottom, rgba(255, 255, 255, 0.0), rgba(53, 123, 183, 0.9)),
<?php }
else { ?>
background-image: linear-gradient(to bottom, rgba(255, 255, 255, 0.0), rgba(234, 107, 53, 0.9)),
<?php } ?>
url(<?php echo $afbeelding[0]; ?>);background-repeat:no-repeat;background-size:cover;">
<a class="link" src="<?php the_permalink(); ?>">
<div dir="ltr" class="content_slide">
<p class="post_type"><?php echo $post_type; echo $teller; ?></p>
<h3><?php the_title(); ?></h3>
<div class="knop_link">
<span class="bekijken">Bekijken<span class="underline"></span></span><span class="icoon"></span>
</div>
</div>
</a>
</div>
<?php $teller++ ?>
<?php endwhile; wp_reset_postdata(); ?>
</div>
<?php endif; ?>
<?php
return ob_get_clean();
}
add_shortcode('acties_arrangementen', 'carousel_acties_arrangementen');
但是现在它显示了这样的列表:
Post 1 (post_type = actie)
Post 2 (post_type = actie)
Post 3 (post_type = actie)
Post 4 (post_type = arrangement)
Post 5 (post_type = arrangement)
Post 6 (post_type = arrangement)
我希望它显示如下:
Post 1 (post_type = actie)
Post 2 (post_type = arrangement)
Post 3 (post_type = actie)
Post 4 (post_type = arrangement)
Post 5 (post_type = actie)
Post 6 (post_type = arrangement)
有人可以向我解释如何解决此问题吗?
我想我必须对$teller
做些事情
好吧,我不会在这里编写整个HTML,只是给您外部结构:
function carousel_acties_arrangementen() {
ob_start();
$currentID = get_the_ID();
$args = array(
'post_type' => array('actie', 'arrangement'),
'posts_per_page' => '6',
'order' => 'ASC',
'orderby' => 'meta_value',
'post__not_in' => array($currentID),
);
$acties_arrangementen = new WP_Query($args);
?>
<?php if ($acties_arrangementen->have_posts()) : ?>
<?php
list($actiePost,$arrangementPost) = array_chunk($acties_arrangementen->the_post(),3);
?>
<?php foreach($actiePost as $key=>$value){?>
<div>
actie post data
</div>
<?php if(isset($arrangementPost[$key])){?>
<div>
arrangement post data
</div>
<?php } ?>
<?php } ?>
<?php endif; ?>
<?php
return ob_get_clean();
}
add_shortcode('acties_arrangementen', 'carousel_acties_arrangementen');