AntonEssential
@AntonEssential

Как передать в тег img размер миниатюры а в href полный размер?

Добрый день, подскажите можно ли передать тегу img src маленького изображения, я использую стандартную галерею wordpress, прохожу по массиву вынимаю src для тега а и img, если я в галереи ставлю размер миниатюра естественно выводятся все фото обрезанные по размерам миниатюры так как в функции стоит вывод $src следовательно этот-же путь передается в ссылку, получается что я открываю маленькое изображение, могу ли я передать в src размер миниатюры в href полный размер?

<?php
while ( have_posts() ) : the_post();
    if ( get_post_gallery() ) :
        $gallery = get_post_gallery( get_the_ID(), false );


        foreach( $gallery['src'] as $src ) : ?>

         <a class="gallery__item f__col" href="<?php echo $src; ?>">
            <img src="<?php echo $src; ?>" class="gallery__item__img" alt="Gallery image" />
         </a>
            <?php
        endforeach;
    endif;
endwhile;


4228d02fb2a44a5dbdef255023d9e94f.png
  • Вопрос задан
  • 131 просмотр
Решения вопроса 1
deniscopro
@deniscopro Куратор тега WordPress
WordPress-разработчик, denisco.pro
Если нужно переопределить вывод шорткода [gallery], то можно также воспользоваться хуком post_gallery:
add_filter('post_gallery', 'dco_post_gallery', 10, 3);

function dco_post_gallery($output, $attr, $instance) {
    $_attachments = get_posts(array('include' => $attr['include'], 'post_status' => 'inherit', 'post_type' => 'attachment', 'post_mime_type' => 'image', 'order' => $attr['order'], 'orderby' => $attr['orderby']));

    $attachments = array();
    foreach ($_attachments as $key => $val) {
        $attachments[$val->ID] = $_attachments[$key];
    }

    if (empty($attachments)) {
        return '';
    }

    ob_start();
    foreach ($attachments as $id => $attachment) :
        $full = wp_get_attachment_image_url($id, 'full');
        $thumbnail = wp_get_attachment_image_url($id, 'thumbnail');
        $alt = $attachment->post_excerpt;
        ?>
        <a class="gallery__item f__col" href="<?php echo $full; ?>">
            <img src="<?php echo $thumbnail; ?>" class="gallery__item__img" alt="<?php echo esc_attr($alt); ?>" />
        </a>
        <?php
    endforeach;
    return ob_get_clean();
}
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
mobdiz
@mobdiz
web-разработчик
Можно получать ссылку по id из массива $gallery['ids]
Откуда взялся массив ids - https://wp-kama.ru/function/get_post_gallery
Получить url по id - https://wp-kama.ru/function/wp_get_attachment_imag...
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы