微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

仅显示前 9 张图像 ACF 图库并从链接触发图库

如何解决仅显示前 9 张图像 ACF 图库并从链接触发图库

我正在尝试将前 9 张图像显示为 ACF 图库中的预览。单击一个时,会打开一个灯箱,我希望包含所有图像,包括最初的 9 个图像

我只能找到显示 1 张图片不超过 1 张的解决方

我试过了

     <?PHP $images = get_field( 'gallery' ); ?>
       <?PHP $image  = $images[9]; ?>
       
       
       <?PHP if ( $images ) :  ?>
         <?PHP foreach ( $images as $gallery_image ): ?>
           <a href="<?PHP echo esc_url( $image['url'] ); ?>">
             <img src="<?PHP echo esc_url( $image['sizes']['medium'] ); ?>" alt="<?PHP echo esc_attr( $image['alt'] ); ?>" />
           </a>
           <p><?PHP echo esc_html( $image['caption'] ); ?></p>
         <?PHP endforeach; ?>
       <?PHP endif; ?>  
          

但这只会重复第 9 张图片

我也试过这个

           <?PHP if ( $gallery_images ) :  ?>
               <?PHP foreach(array_slice($gallery_images,9) as $gallery_image) ?>
                 <a href="<?PHP echo esc_url( $image['url'] ); ?>">
                   <img src="<?PHP echo esc_url( $image['sizes']['medium'] ); ?>" alt="<?PHP echo esc_attr( $image['alt'] ); ?>" />
                 </a>
                 <p><?PHP echo esc_html( $image['caption'] ); ?></p>
               <?PHP endforeach; ?>
             <?PHP endif; ?> 

但这根本行不通

我还想创建一个只打开图库而不显示任何预览图像的按钮

基本上我想在点击“显示画廊按钮”时触发对第一张图片的点击

任何帮助都会很棒

编辑

我刚刚试过这个:

 <div class="listing-preview-gallery">

          
               
             <?PHP $gallery_images = get_field( 'gallery' ); ?>
             <?PHP if ( $gallery_images ) :  ?>
               <?PHP foreach ( $gallery_images as $gallery_image ): ?>
               
               
               
               <?PHP if ( $i == 1 ) { ?>
               
                      <div class="preview-image-container">
                        <div class="the-image">
                            <a href="<?PHP echo esc_url( $gallery_image['url'] ); ?>">
                               <img src="<?PHP echo esc_url( $gallery_image['sizes']['medium'] ); ?>" alt="<?PHP echo esc_attr( $gallery_image['alt'] ); ?>" />
                             </a> 
                        </div>     
                      </div>          
 
              <?PHP } elseif ( $i == 2 ) { ?>
                            <div class="preview-image-container">
                              <div class="the-image">
                                  <a href="<?PHP echo esc_url( $gallery_image['url'] ); ?>">
                                     <img src="<?PHP echo esc_url( $gallery_image['sizes']['medium'] ); ?>" alt="<?PHP echo esc_attr( $gallery_image['alt'] ); ?>" />
                                   </a> 
                              </div>     
                            </div>          
               <?PHP } elseif ( $i == 3 ) { ?>
                            <div class="preview-image-container">
                              <div class="the-image">
                                  <a href="<?PHP echo esc_url( $gallery_image['url'] ); ?>">
                                     <img src="<?PHP echo esc_url( $gallery_image['sizes']['medium'] ); ?>" alt="<?PHP echo esc_attr( $gallery_image['alt'] ); ?>" />
                                   </a> 
                              </div>     
                            </div>          
                <?PHP } elseif ( $i == 4 ) { ?>
                            <div class="preview-image-container">
                              <div class="the-image">
                                  <a href="<?PHP echo esc_url( $gallery_image['url'] ); ?>">
                                     <img src="<?PHP echo esc_url( $gallery_image['sizes']['medium'] ); ?>" alt="<?PHP echo esc_attr( $gallery_image['alt'] ); ?>" />
                                   </a> 
                              </div>     
                            </div>          
                <?PHP } elseif ( $i == 5 ) { ?>
                            <div class="preview-image-container">
                              <div class="the-image">
                                  <a href="<?PHP echo esc_url( $gallery_image['url'] ); ?>">
                                     <img src="<?PHP echo esc_url( $gallery_image['sizes']['medium'] ); ?>" alt="<?PHP echo esc_attr( $gallery_image['alt'] ); ?>" />
                                   </a> 
                              </div>     
                            </div>          
                <?PHP } elseif ( $i == 6 ) { ?>
                           <div class="preview-image-container">
                             <div class="the-image">
                                 <a href="<?PHP echo esc_url( $gallery_image['url'] ); ?>">
                                    <img src="<?PHP echo esc_url( $gallery_image['sizes']['medium'] ); ?>" alt="<?PHP echo esc_attr( $gallery_image['alt'] ); ?>" />
                                  </a> 
                             </div>     
                           </div>          
                 <?PHP } elseif ( $i == 7 ) { ?>
                           <div class="preview-image-container">
                             <div class="the-image">
                                 <a href="<?PHP echo esc_url( $gallery_image['url'] ); ?>">
                                    <img src="<?PHP echo esc_url( $gallery_image['sizes']['medium'] ); ?>" alt="<?PHP echo esc_attr( $gallery_image['alt'] ); ?>" />
                                  </a> 
                             </div>     
                           </div>          
                  <?PHP } elseif ( $i == 8 ) { ?>
                            <div class="preview-image-container">
                              <div class="the-image">
                                  <a href="<?PHP echo esc_url( $gallery_image['url'] ); ?>">
                                     <img src="<?PHP echo esc_url( $gallery_image['sizes']['medium'] ); ?>" alt="<?PHP echo esc_attr( $gallery_image['alt'] ); ?>" />
                                   </a> 
                              </div>     
                            </div>          
                   <?PHP } elseif ( $i == 9 ) { ?>
                           <div class="preview-image-container">
                             <div class="the-image">
                                 <a href="<?PHP echo esc_url( $gallery_image['url'] ); ?>">
                                    <img src="<?PHP echo esc_url( $gallery_image['sizes']['medium'] ); ?>" alt="<?PHP echo esc_attr( $gallery_image['alt'] ); ?>" />
                                  </a> 
                             </div>     
                           </div>                       

<?PHP } 
            $i++; ?>
               
               
               
               
                
               <?PHP endforeach; ?>
             <?PHP endif; ?>  
     
                </div>  

 

而且它只成功预览了 9 个,其余的没有显示在灯箱中

我试过这个按钮点击

jQuery ( function($) {
      $('.gallery-button').off('touchstart touchend').on('click',function() {
              $('.listing-preview-gallery #preview-image-container:first-child .the-image a').trigger('click');
      } );
    } );

编辑 2

我发现我可以使用第 n 个子节点隐藏除前 9 个缩略图之外的所有缩略图,但它仍然加载图像 - 我想知道是否有办法在打开灯箱之前不加载剩余图像

解决方法

所以我没有你的完整问题的答案,但是你的 php 示例显示了前 9 张照片,有一个更短的方法来写出来。看看下面的代码。

<div class="listing-preview-gallery">
  <?php $gallery_images = get_field( 'gallery' );
  if ( $gallery_images ) :
    $previewCount = 9;
    $i = 0;
    foreach ( $gallery_images as $gallery_image ):
      $i++;
      if($i <= $previewCount){ ?>
        <div class="preview-image-container">
          <div class="the-image">
              <a href="<?php echo esc_url( $gallery_image['url'] ); ?>">
                 <img src="<?php echo esc_url( $gallery_image['sizes']['medium'] ); ?>" alt="<?php echo esc_attr( $gallery_image['alt'] ); ?>" />
              </a>
          </div>
        </div>
      <?php }
    endforeach;
  endif; ?>
</div> 

您只需将 $previewCount 变量设置为您想要预览的任意数量的图像,其余的将由代码完成。它使用 $i 作为计数器,并检查 $previewCount 变量以确定何时停止循环遍历 $gallery_images

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。