Запрос WordPress сначала отображает несколько заголовков, затем содержимое, а затем повторяет цикл


Я хочу, чтобы за 2 столбцами заголовков следовали 2 строки содержимого, а затем повторять, пока запрос не будет выполнен.

Пример:

<div><?php the_title(); ?></div>
<div><?php the_title(); ?></div>

<div><?php the_content(); ?></div>
<div><?php the_content(); ?></div>


<div><?php the_title(); ?></div>
<div><?php the_title(); ?></div>

<div><?php the_content(); ?></div>
<div><?php the_content(); ?></div>

Вот мой текущий код

<?php  
$teams = new WP_Query(array(  
'post_type' =>  'team-post'
)  
);  
if ($teams->have_posts()) : while  ($teams->have_posts()) : $teams->the_post();?>

<?php if( $teams->current_post%2 == 0 ) echo "\n".'<div class="row">'."\n"; ?>

<div class="col-md-6"><?php the_title(); ?></div>

<?php if( $teams->current_post%2 == 1 || $teams->current_post == $teams->post_count-1 ) echo '</div> <!--/.row-->'."\n"; ?>

<div class="col-md-12"><?php the_content(); ?></div>

<?php endwhile; endif; wp_reset_query();?>

Проблема с запросом заключается в том, что он проходит через каждую запись и выводит сначала ЗАГОЛОВОК, а затем СОДЕРЖИМОЕ, что является нормой. Я хотел бы иметь возможность сначала иметь 2 НАЗВАНИЯ, затем СОДЕРЖИМОЕ для этих 2 записей, а затем повторить.

Author: Siguza, 2015-08-18

1 answers

Вы не можете делать то, что хотите, просматривая сообщения таким образом. Вам нужно будет написать цикл for и использовать увеличивающееся число, чтобы получать две записи одновременно.

На моем месте я бы взглянул на структуру HTML/CSS и посмотрел, есть ли лучший способ добиться желаемого эффекта, но если вы довольно настроены на решение PHP, что-то вроде этого будет работать:

$teams = new WP_Query( array( 'post_type' => 'team-post' ) );

$total_posts = count( $teams->posts );

for ( $i = 0; $i < $total_posts; $i += 2 ) {

    $left_post = $teams->posts[ $i ];

    $right_post = ( isset( $teams->posts[ $i + 1 ] ) ) ? $teams->posts[ $i + 1 ] : false;
    ?>
    <div class="row">
        <div class="col-md-6"><?php echo get_the_title( $left_post->ID ); ?></div>
        <?php if ( $right_post ) { ?>
            <div class="col-md-6"><?php echo get_the_title( $right_post->ID ); ?></div>
        <?php } ?>

        <div class="col-md-12"><?php echo apply_filters( 'the_content', $left_post->post_content ); ?></div>
        <?php if ( $right_post ) { ?>
            <div class="col-md-12"><?php echo apply_filters( 'the_content', $right_post->post_content ); ?></div>
        <?php } ?>
    </div>
    <?php
}

Это также учитывает возможность нечетного числа сообщений.

 0
Author: Andy, 2015-08-18 14:38:47