Как получить URL WordPress image_size

Я использую Woocommerce для 1800+ интернет-магазина продуктов. Woocommerce поставляется со встроенным плагином для лайтбокса PrettyPhoto. По умолчанию он загружает исходный размер изображения Wordpress, когда вы нажимаете, чтобы увеличить изображение в лайтбоксе.

Woocommerce вызывает это оригинальное изображение в шаблоне product-image.php. Я могу изменить это. Переменная $ image_link вызывает оригинальный размер. Я хотел бы назвать нестандартный размер, который я уже сделал. Я просто не знаю, как это назвать, я искал более дня в документах, форумах и сайтах, но не могу найти его.

Мне нужно изменить $ image_link, чтобы он вызывал мой собственный размер изображения (который я добавил через add_image_size). Но как? Я знаю, что это основы Wordpress, но я не могу сделать это...

Пример моего сайта (нажмите, чтобы увеличить, оно показывает уменьшенное изображение шириной 1600 пикселей, но я хочу уменьшенное изображение): http://www.affichesmarci.com/shop/the-railys-cycling-act/

<?php
    if ( has_post_thumbnail() ) {

        $image              = get_the_post_thumbnail( $post->ID, apply_filters( 'single_product_large_thumbnail_size', 'shop_single' ) );

        $image_title        = esc_attr( get_the_title( get_post_thumbnail_id() ) );
        $image_link         = wp_get_attachment_url( get_post_thumbnail_id() );

        $attachment_count   = count( $product->get_gallery_attachment_ids() );

        if ( $attachment_count > 0 ) {
            $gallery = '[product-gallery]';
        } else {
            $gallery = '';
        }

        echo apply_filters( 'woocommerce_single_product_image_html', sprintf( '<a href="%s" itemprop="image" class="bigbox woocommerce-main-image zoom" title="%s" rel="prettyPhoto' . $gallery . '">%s</a>', $image_link, $image_title, $image ), $post->ID );

    } else {

        echo apply_filters( 'woocommerce_single_product_image_html', sprintf( '<img src="%s" alt="Placeholder" class="bigbox" />', woocommerce_placeholder_img_src() ), $post->ID );

    }
?>

<?php do_action( 'woocommerce_product_thumbnails' ); ?>

4 ответа

Решение

Я нашел решение сам.

Исходная переменная, которая вызывает полноразмерное изображение.

$image_link = wp_get_attachment_url( get_post_thumbnail_id() );

Новая переменная, которая вызывает нестандартный размер zoom.

$image_link = wp_get_attachment_image_src( get_post_thumbnail_id($post->ID), 'zoom' );

Хорошо, добавив большой размер вместо полного

$image_link = wp_get_attachment_image_src( get_post_thumbnail_id($post->ID), 'large');

Теперь поменяй $image_link в $image_link[0]

echo apply_filters( 'woocommerce_single_product_image_html', sprintf( '<a href="%s" itemprop="image" class="woocommerce-main-image zoom" title="%s"  rel="prettyPhoto' . $gallery . '">%s</a>', $image_link[0], $image_title, $image ), $post->ID );

Спасибо за идеи:)

Если вы уже установили "add_image_size" в функциях, я думаю, вы могли бы легко редактировать

$image              = get_the_post_thumbnail( $post->ID, apply_filters( 'single_product_large_thumbnail_size', 'shop_single' ) );

в

$image              = get_the_post_thumbnail( $post->ID, apply_filters( 'your_thumbnail_name', 'shop_single' ) );

Вы также можете использовать стандартные размеры WP: "thumbnail", "medium", "large" и "full"

для получения URL-адреса src используйте этот код:

      $image_link = wp_get_attachment_image_src( get_post_thumbnail_id($post->ID), 'thumbnail');

и для использования для пометки изображения по alt и размеру:

      echo '<a href="' . get_permalink() . '" class="thumb"><span class="face">
<img src="' . $image_link[0]. '" width="'.$image_link[1].'"
height="'.$image_link[2].'"  loading="lazy" alt="'.get_the_title().'" /></span></a>';
Другие вопросы по тегам