2013-08-13 2 views
1

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

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'); ?> 

ответ

5

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

Оригинальная переменная, которая вызывает полноразмерное изображение.

$image_link = wp_get_attachment_url(get_post_thumbnail_id()); 

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

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

Если вы уже установили "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 по умолчанию, который является «Ленфильм», «среда», «большой» и «полный»

+0

Спасибо за предложение, но Didn Не получится. По-видимому 'single_product_large_thumbnail_size' не является размером изображения. Например, изменение этого на «средний» ничего не делает. –

+0

Просто, чтобы быть ясным. $ изображение в порядке. Это дает мне правильный image_size. Мне нужно изменение в $ image_link, которое вызывает исходный размер, где я бы хотел, чтобы он был нестандартным размером, который я создал. –

0

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

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

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

Смежные вопросы