WooCommerce-删除默认图像占位符?

时间:2013-08-05 作者:speedypancake

How can I show images for just some of the items but not for others?

我正在制作一个带有在线订购功能的餐厅菜单,显示带有短代码的食物菜单(woocommerce产品),例如[product\\u category=“starters”orderby=“date”order=“asc”]等。

很多商品都不需要图片,但我发现,如果一个产品没有与之关联的图片,那么woocommerce会自动在列表中添加一个难看的占位符。

我可以关闭所有缩略图,但我仍然需要任何需要图像的产品的缩略图支持。

如果我删除默认占位符图像,它将被替换为文本“占位符”!

如果我将其占位符替换为一个小的透明占位符。然后,png会放大到拇指的任何大小,从而产生不需要的“缺失图像”间隙。

不知道还能尝试什么?谢谢

3 个回复
最合适的回答,由SO网友:helgatheviking 整理而成

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();
}
}
theif ( ! function_exists(\'something\' ) ) check表示一个可插入函数,您可以通过在主题或子主题中创建同名函数来覆盖该函数。

Woo的函数本质上是显示缩略图(如果存在)和占位符(如果不存在),因此您只需在自己的版本中删除该部分,如下所示:

function woocommerce_template_loop_product_thumbnail() {
    global $post;
    if ( has_post_thumbnail() )
          echo get_the_post_thumbnail( $post->ID, \'shop_catalog\' );
}

SO网友:speedypancake

在别处找到答案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 );

SO网友:zaib

这是删除占位符默认图像的简单方法。只需按照以下步骤操作:

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 );
 }
您的问题将得到解决。:)

谢谢

结束

相关推荐

Display All Non-Used Plugins

我的公司目前拥有大约20个多站点,并且每天都在增长。我们正在尝试通过插件并制定标准。IE,表单使用插件X。然而,我们还没有找到一种单一的方法来检查和系统地显示哪些插件甚至没有被使用。是否有一个功能可以向我们显示已使用或未使用的插件?我试着寻找我能想到的一切,但我一生都找不到答案。