Как я могу показать изображения для просто некоторых объектов, но не для других?
Я работаю над меню ресторана с заказом онлайн, отображая меню блюд (woocommerce продукты) с shortcodes - например, [product_category категория = "начинающие" orderby = порядок "даты" = "asc"] и т.д.
Много объектов не требует изображения, но я нашел, что, если продукт не имеет изображения assosciated с ним затем woocommerce автоматически, добавляет ужасного заполнителя к спискам.
Я могу выключить все миниатюры, но мне все еще нужна поддержка миниатюры любых продуктов, которые действительно требуют изображения.
Если я удаляю изображение заполнителя по умолчанию, оно заменяется текстом "заполнитель"!
Если я заменяю их заполнителя маленьким прозрачным .png затем, это увеличено масштаб к любому размеру, который ползунки, создавая нежелательного, "пропускающего изображение" разрыв.
Никакая идея, что еще попробовать?Спасибо
woocommerce_template_loop_product_thumbnail
является сменным, таким образом, можно переопределить его с собственным кодом. Любое время Вы видите функцию где угодно в установке WordPress, которая похожа на это:
if ( ! function_exists( 'woocommerce_template_loop_product_thumbnail' ) ) {
/**
* Get the product thumbnail for the loop.
*
* @access public
* @subpackage Loop
* @return void
*/
function woocommerce_template_loop_product_thumbnail() {
echo woocommerce_get_product_thumbnail();
}
}
if ( ! function_exists('something' ) )
проверка указывает на сменную функцию, которую можно переопределить путем создания функции того же имени в Вас тема или дочерняя тема.
Функция Woo по существу показывает миниатюру, если она существует и заполнитель, если бы она не делает, таким образом, необходимо было бы просто устранить ту часть в собственной версии, как так:
function woocommerce_template_loop_product_thumbnail() {
global $post;
if ( has_post_thumbnail() )
echo get_the_post_thumbnail( $post->ID, 'shop_catalog' );
}
Найденный ответом в другом месте http://www.peterrknight.com/woocommerce-tutorial-better-product-listings-for-imageless-products-part-1/, который я включаю. Мог, вероятно, быть приведен в порядок или упрощен, но, кажется, работает отлично путем удаления заполнителя изображения по умолчанию для любых продуктов, которые не имеют изображения:
function before_imageless_product() {
if( !has_post_thumbnail( get_the_id() ) ){
remove_action( 'woocommerce_before_shop_loop_item_title', 'woocommerce_template_loop_product_thumbnail', 10 );
echo '<div class="no-image">';
}
}
add_action( 'woocommerce_before_shop_loop_item', 'before_imageless_product', 9 );
function after_imageless_product() {
if( !has_post_thumbnail( get_the_id() ) ){
add_action( 'woocommerce_before_shop_loop_item_title', 'woocommerce_template_loop_product_thumbnail', 10 );
echo '</div>';
}
}
add_action( 'woocommerce_after_shop_loop_item', 'after_imageless_product', 9 );
это - простой способ удалить изображение значения по умолчанию заполнителя. просто выполните шаги:
1: перейдите в к woocommerce плагину
2: перейдите в templates
папка
3: затем перейдите в single product
папка
там Вы найдете product-image.php
файл. откройте его и только удалите ниже упомянутого кода
else {
echo apply_filters( 'woocommerce_single_product_image_html', sprintf( '<img src="%s" alt="Placeholder" />', woocommerce_placeholder_img_src() ), $post->ID );
}
Ваша проблема будет, решают.:)
спасибо