URL-адреса галереи ACF - PullRequest
       40

URL-адреса галереи ACF

1 голос
/ 25 марта 2020

Я использую галерею Advanced Custom Fields в пользовательском типе записи;

Мне удалось отобразить изображения (эскизы), добавленные в галерею, используя следующий код

        $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; ?>

Как можно Я получаю URL изображений?

Я пробовал <?php echo $image['url']; ?>, но это не сработало

Ответы [ 3 ]

1 голос
/ 25 марта 2020
  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 зависит, какие атрибуты или классы используются для создания лайтбокса. Приветствия.

0 голосов
/ 25 марта 2020

Во-первых, вы должны убедиться, что возвращаемое значение настраиваемого поля установлено в «Image Array». Это распространенная ошибка. Если это установлено правильно, вы сможете сделать следующее. Я предполагаю, что если вы используете какое-либо решение для лайтбокса, вам может понадобиться добавить класс к вашему тегу <a>. В любом случае, это должно отобразить изображения успешно:

<?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; ?>
0 голосов
/ 25 марта 2020

Должно быть довольно прямым. Вы получаете его так же, как и миниатюру изображения.

Ресурс: 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; ?>
...