【问题标题】:ACF get next sub_field data to current rowACF 获取当前行的下一个子字段数据
【发布时间】:2018-09-27 20:27:09
【问题描述】:

我正在使用带有 ACF 字段的光滑滑块 (Wordpress)。我正在尝试获取当前幻灯片的下一篇和上一篇文章标题 (.slick-current)。

我有 .slick-active 类的三张活动幻灯片,中间一张也有 .slick-current 类(除了 .slick-active)

<?php if (have_rows('videofeed','option')): ?>
<div class="slider-popular">
            <?php while (have_rows('videofeed2','option')) : the_row(); ?>
                <div class="slider-go-wrap">
                      <h2 class="video-title"> <?php the_sub_field('video_title'); ?> </h2><!-- the video title -->

                    <div class="video-controls">
                                <div class="prev-title-popular">
                                    <span class="lightspan controltitles prev-videotitle">PREVIOUS TITLE HERE</span> <!-- previous  ACF row sub_field "video_title" here -->
                                </div>

                                <div class="next-title-popular">
                                    <span class="lightspan controltitles next-videotitle">NEXT TITLE HERE</span><!-- next ACF row sub_field "video_title" here -->
                                </div>
                    </div>
                </div>
            <?php endwhile;?>
</div>     
<?php endif; ?>

不是一个服务器端的人,我如何将以下 php 循环与当前幻灯片中的下一个和上一个字段数据集成到我的 ACF 字段转发器中?有没有比 php 循环更简单的方法?

$rows = get_field('videofeed');
if($rows)
{

    foreach($rows as $index => $row)
    {
        // from there, you can get prev / next data using loop index ($rows[$index-1] / $rows[$index+1]
    }

}

这里的任何建议都会很棒。

【问题讨论】:

  • 我达到了这一点: $('.slider-go-wrap').each(function() { currentSlide = $('.slick-current'); nextSlide = currentSlide.next() ; prevSlide = currentSlide.prev(); nextSlideData = nextSlide.find('.next-videotitle').html(); prevSlideData = prevSlide.find('.prev-videotitle').html(); });但它似乎没有按计划工作。有什么提示吗?
  • 这是一个小提琴,问题是它只适用于当前但应该适用于所有幻灯片:jsfiddle.net/px2bvdbt/12

标签: php jquery foreach advanced-custom-fields slick.js


【解决方案1】:

使用以下 jQuery 代码解决了问题,适用于每张幻灯片:

$('.slider-go-wrap').each(function() {
  currentSlide = $(this);
  nextSlide = currentSlide.next();
  prevSlide = currentSlide.prev();
  nextSlideData = nextSlide.find('.video-title').html();
  prevSlideData = prevSlide.find('.video-title').html();

  currentSlide.find('.next-videotitle').html(nextSlideData);
  currentSlide.find('.prev-videotitle').html(prevSlideData);

});

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-03
    • 1970-01-01
    • 2020-04-15
    • 2019-06-03
    • 2019-07-16
    • 1970-01-01
    相关资源
    最近更新 更多