【问题标题】:Hiding products without thumbnail in WooCommerce shop page在 WooCommerce 商店页面中隐藏没有缩略图的产品
【发布时间】:2017-12-06 15:49:08
【问题描述】:

我使用进口商向商店进口数千种产品。虽然我必须在要出售该商品之前插入该商品的图片和描述。

如果没有指定缩略图,我想从商店中完全隐藏产品。这样,只有在我设置了缩略图之后,新产品才会出现在商店中。

我在 header.php 中尝试过,但没有成功:

 <?php if($_product->getImage() && $_product->getImage() != 'no_selection'){
?>
 <style>
  /* Css to hide Featured image Div */
 </style>
<?php
}?>

这给了我错误:

致命错误:在非对象上调用成员函数 getImage()

如果 WordPress WooCommerce 产品没有放置缩略图,是否有任何快速方法可以从商店页面隐藏它们?

谢谢

【问题讨论】:

  • 不起作用 :( 致命错误:在非对象中调用成员函数 woocommerce_get_product_thumbnail()
  • $_product 有问题。这不是一个对象。检查var_dump ($_product); 看看它显示了什么

标签: php wordpress image woocommerce product


【解决方案1】:

您可以在 woocommerce_product_query 操作中使用自定义函数,该函数将更改商店查询并且不会在没有图像的商店页面上显示产品,这样:

add_action( 'woocommerce_product_query', 'custom_pre_get_posts_query' );
function custom_pre_get_posts_query( $query ) {

    $query->set( 'meta_query', array( array(
       'key' => '_thumbnail_id',
       'value' => '0',
       'compare' => '>'
    )));

}

代码进入您的活动子主题(或主题)的 function.php 文件或任何插件文件中。

此代码经过测试,可在 WooCommerce 2.6.x 和 3.0+ 上运行

【讨论】:

  • 我想隐藏 woocommerce 中没有图像的所有产品。那么有可能吗?谢谢
  • @Chetan 应该是...检查您的数据库(在 wp_postmeta 表中)以查看此产品是否有一些方便的 meta_key / meta_value...
  • 这正是我想要做的,它在我的 /wp-includes/functions.php 文件中非常适合我。谢谢!我可能会将它移动到自定义插件中,以便我可以轻松地激活/停用它,但现在这很好用,谢谢!
  • 实际上,它可以工作,但只有在选择了不同的排序之后。每次加载页面时,它都会显示所有内容。也许我遗漏了一些明显的东西......
【解决方案2】:

Woo-commerce 通常会在没有缩略图的产品上插入占位符图片。您可以做的是使用 Jquery 轻松定位没有缩略图的产品。

在我的网站上,它会在 site_url() 中放置一个名为“placeholder.png”的 imame。 .

将 javascript 加入主题或创建子主题并将其添加到 functions.php 文件中。

这里是代码。

hideproduct.js

jQuery(document).ready(function(){

    jQuery(".products a img.woocommerce-
            placeholder").parents(".product").css("display","none");

})

【讨论】:

    【解决方案3】:

    好吧,您可以省去很多麻烦,并最初将post_status 设置为draft 导入您的产品,这将导致它们不会显示在首页上。然后,每次您将图像添加到您的产品时,我假设您是通过 WP 后端执行的,您“发布”您的产品,因为无论如何您都必须保存它。

    如果您有单独的图像导入脚本,您可以从那里将post_status 设置为public

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-05-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-05-27
      相关资源
      最近更新 更多