我正在寻找一个特定类别的帖子列表。我可以使用我创建的循环检索它们,但它不是按我需要的方式显示它们。我想运行循环并将所有帖子标题堆叠在一个div中(如果这有意义)。
我的引导程序布局中有两列。第一列显示YouTube视频,第二列显示视频名称。自循环以来,视频叠加,标题叠加(如此)......
这不是我想要的。我想要这样的东西
我还需要找到一种方法来为第一个视频添加一个类并隐藏其余部分。但这是一个不同的问题。任何帮助将非常感激
<div class="videosSection">
<div class="callout">
<h1>Getting Started Videos</h1>
</div>
<?php
$args = array(
'post_type' => 'videos_post',
'order' => 'ASC',
);
$videos_loop = new WP_Query($args);
if ($videos_loop->have_posts()) : while ($videos_loop->have_posts()) : $videos_loop->the_post();
$meta = get_post_meta($post->ID, 'videos_fields', true); ?>
<div class="col-lg-8 col-md-8 col-sm-8 col-xs-12 videosContainer <?php echo $meta['VideoLink']; ?>">
<div class="videoPlayerContainer">
<iframe width="100%" height="315"
src="https://www.youtube.com/embed/<?php echo $meta['VideoLink']; ?>"
frameborder="0" allow="autoplay; encrypted-media"
allowfullscreen></iframe>
</div>
</div>
<div class="col-lg-4 col-md-4 col-sm-4 col-xs-12">
<div class="videoLinks">
<p class="<?php echo $meta['VideoLink']; ?>"><?php echo $meta['VideoTitle']; ?></p>
</div>
</div>
<?php endwhile; endif;
wp_reset_postdata(); ?>
</div>
您需要一个条件语句来输出标题列div,因为您只想输出此div列一次。使用循环计数器并检查它是否是循环中的最后一个和第一个视频将实现此目的。我没有测试这个,所以让我知道是否有任何问题,我会看看我是否可以设置一个测试场景来尝试它。
if ($videos_loop->have_posts()) :
for ( $x = 1; $x <= $videos_loop->post_count; $x++ ) :
$videos_loop->the_post();
$meta = get_post_meta($post->ID, 'videos_fields', true);
?>
<div class="col-lg-8 col-md-8 col-sm-8 col-xs-12 videosContainer <?php echo $meta['VideoLink']; ?>">
<div class="videoPlayerContainer">
<iframe width="100%" height="315"
src="https://www.youtube.com/embed/<?php echo $meta['VideoLink']; ?>"
frameborder="0" allow="autoplay; encrypted-media"
allowfullscreen></iframe>
</div>
</div>
<?php if( $x == 1 ) : ?>
<div class="col-lg-4 col-md-4 col-sm-4 col-xs-12">
<?php else: ?>
<div class="videoLinks">
<p class="<?php echo $meta['VideoLink']; ?>"><?php echo $meta['VideoTitle']; ?></p>
</div>
<?php endif; ?>
<?php if( $x == $videos_loop->post_count) : ?>
</div>
<?php endif; ?>
<?php
endfor;
endif;