【问题标题】:WordPress Category List LoopWordPress 类别列表循环
【发布时间】:2018-08-07 20:56:03
【问题描述】:

我希望建立一个特定类别的帖子列表。我可以使用我创建的循环来检索它们,但它并没有按照我需要的方式显示它们。我想运行循环并将所有帖子标题堆叠在一个 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>

【问题讨论】:

  • 发布您的代码以便我们提供帮助。
  • 我已经编辑了我的帖子以包含视频部分代码
  • 您需要一个条件语句来输出“
    ”,因为您只想输出一次。使用循环计数器并检查它是否是循环中的最后一个和第一个视频将实现这一点。我现在写一些代码。

标签: wordpress loops posts


【解决方案1】:

您需要一个条件语句来输出标题列 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;

【讨论】:

  • 它似乎唯一做的就是返回第一个视频和第一个标题。最后这里也有错误
  • 在 for 循环中遗漏了冒号。现在应该编译,我很难测试,但你明白你实现它背后的想法吗?
  • 现在有点用了。我只在左侧栏中看到一个视频(我需要所有视频,以便我可以根据 jquery 隐藏/显示),右侧栏缺少一个标题,并且正在列出视频。
猜你喜欢
  • 2011-09-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-02-20
  • 2013-04-15
相关资源
最近更新 更多