【问题标题】:ACF gallery images urlsACF 画廊图片网址
【发布时间】:2020-07-05 12:28:41
【问题描述】:

我在自定义帖子类型中使用高级自定义字段库;

我已经设法使用以下代码显示添加到图库中的图像(缩略图)

        $images = get_field('gallery'); if( $images ): $images = explode(',', $images); $images = array_filter($images); if( count($images)):
        ?>
            <ul>
            <?php foreach( $images as $image ): $alt = get_the_title($image); $url = ```this is where I'm stuck``` ?>
                <li>
                    <a href="<?php echo $url; ?>" title="<?php echo $alt; ?>">
                        <?php echo wp_get_attachment_image($image, "thumbnail", false, ['alt' => $alt]); ?>
                    </a>
                </li>
            <?php endforeach; endif; ?>
            </ul>
        <?php endif; ?>

如何获取图片的网址?

我试过了 &lt;?php echo $image['url']; ?&gt; 但它没有工作

【问题讨论】:

    标签: php wordpress url gallery advanced-custom-fields


    【解决方案1】:
    1. 安装这个插件:https://wordpress.org/plugins/lightbox-photoswipe/
    2. 使用下面的代码:

      $images = get_field('gallery'); 
           if( $images ):
              $images = explode(',', $images);
              $images = array_filter($images);
              if( count($images)): ?>
                  <ul>
                      <?php foreach( $images as $image ): 
                          $alt = get_the_title($image);
                          $imageUrlFull = wp_get_attachment_image_url(  $image, 'full' ) ?>
                          <li>
                              <a href="<?php echo $imageUrlFull ?>" title="<?php echo $alt; ?>">
                                  <?php echo wp_get_attachment_image($image, "thumbnail", false, ['alt' => $alt]); ?>
                              </a>
                          </li>
                      <?php endforeach; ?>
                  </ul>
              <?php endif; ?>
           <?php endif; ?>
      

    其他人也给出了很好的提示,但是如果你喜欢灯箱,它取决于 js 使用哪些属性或类来创建灯箱。干杯。

    【讨论】:

    • 非常感谢!
    【解决方案2】:

    首先,您应该确保您的自定义字段返回值设置为“图像数组”。这是一个常见的错误。如果设置正确,您应该能够执行以下操作。我假设如果您使用某种灯箱解决方案,您可能需要在&lt;a&gt; 标签中添加一个类。无论哪种方式,这都应该成功显示图像:

    <?php 
    
    $images = get_field('gallery');
    
    if( $images ): ?>
        <ul>
            <?php foreach( $images as $image ): ?>
                <li>
                    <a href="<?php echo $image['url']; ?>" title="<?php echo $image['alt']; ?>" >
                      <img src="<?php echo $image['sizes']['thumbnail']; ?>" alt="<?php echo $image['alt']; ?>" />
                    </a>
                </li>
            <?php endforeach; ?>
        </ul>
    <?php endif; ?>
    

    【讨论】:

      【解决方案3】:

      应该很直截了当。获取缩略图的方式与获取缩略图的方式相同。

      资源: https://www.advancedcustomfields.com/resources/gallery/

      <?php 
      $images = get_field('gallery');
      $size = 'full'; // (thumbnail, medium, large, full or custom size)
      if( $images ): ?>
          <ul>
              <?php 
               foreach( $images as $image_id ): 
                  echo '<li data-lightbox="' . wp_get_attachment_image_src($image_id, 'full'). '">';
                      echo '<img src="' . wp_get_attachment_image_src( $image_id, 'thumb' ) . '">';
                  echo '</li>';
               endforeach; 
               ?>
          </ul>
      <?php endif; ?>
      

      【讨论】:

      • 出于某种原因,advancedcustomfields.com/resources/gallery 中的示例都没有为我工作。而且我可以在我的代码中使用任何尺寸,然后所有图像都以该尺寸显示;我想要的是将所有图像作为缩略图,并在单击图像时使用灯箱,我需要该图像的网址
      • 为您更新了我的答案。几乎应该是您正在寻找的东西。可以使用 wp_get_attachment_image_src 来获取每个尺寸的 url。必须针对您的特定灯箱进行修改。
      猜你喜欢
      • 1970-01-01
      • 2016-02-20
      • 1970-01-01
      • 2021-01-08
      • 1970-01-01
      • 1970-01-01
      • 2018-03-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多