Intereting Posts
Использование the_excerpt () на странице $ GLOBALS переменная пустая Пользовательское поле поиска категорий для WordPress отображать определенный виджет на странице Добавление пользовательских html и стандартных виджетов на боковой панели Пользовательские правила перезаписи для фидов пользовательских запросов (строки запроса query_var в URL-адресе)? Вставить кнопку Facebook в заголовок Получать отрывок и заголовок сообщения по конкретному идентификатору сообщения? Миграция: копирование содержимого базы данных на другой сервер определить язык, на котором написано сообщение Как я могу добавить инкрементный идентификатор класса к виджетам боковой панели? Добавление дополнительных данных в объект WP_Post У нас есть In_category, как функция для тегов? Добавление условного содержимого в один шаблон post-type Удаление плагинов: зачем запускать dbDelta после $ wpdb-> query ($ drop_sql)

wp_get_attachment_url с конкретным image_size?

Я использую Woocommerce для более 1800 продуктов в интернет-магазине. Woocommerce поставляется со встроенным плагином PrettyPhoto lightbox. По умолчанию он загружает исходный размер изображения 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' ); ?> 

Solutions Collecting From Web of "wp_get_attachment_url с конкретным image_size?"

Вы можете использовать single_product_large_thumbnail_size фильтр Woocommerce, как показано в следующем коде, чтобы применить пользовательский размер изображения для продукта.

В приведенном выше коде замените это

 apply_filters( 'single_product_large_thumbnail_size', 'shop_single' ) 

с этим

 apply_filters( 'single_product_large_thumbnail_size', 'custom_thumbnail_size' ); 

Если вы можете изменить код в своем вопросе, используйте wp_get_attachment_image_src вместо wp_get_attachment_url . Вы можете указать желаемый размер изображения в качестве второго аргумента.

 $image = wp_get_attachment_image_src(get_post_thumbnail_id(), 'your_custom_size'); if ($image) { list($imageUrl, $imageWidth, $imageHeight) = $image; // do stuff with $imageUrl, etc } else { // couldn't find the image, act accordingly }