在WooCommerce商店页面中对产品进行无缩略图排序

时间:2021-02-04 作者:Naycom

我想创建一个功能,而不是隐藏没有缩略图的产品,将以这样的方式订购,即带有突出显示图像的产品首先出现在商店页面上,而没有突出显示图像的产品则出现在最后。我已尝试修改existing function:

    function woocommerce_product_query( $q ) {
        $q->set( \'meta_key\', \'_thumbnail_id\' );
        $q->set(\'orderby\', \'meta_value_num\');
        $q->set(\'order\', \'DESC\');
    }
    add_action( \'woocommerce_product_query\', \'woocommerce_product_query\' );
我尝试添加orderby 对于这个已经存在的功能,但什么都没有发生,请继续对我隐藏产品。

Shop page在这张照片中,该功能仅隐藏没有缩略图的产品。我不知道怎么解决。。。

2 个回复
SO网友:Ruvee

我会尝试重命名自定义函数并添加meta_query 也所以是这样的:


function my_shop_custom_products_query( $q ) {
        $q->set( \'meta_key\', \'_thumbnail_id\' );
        $q->set(\'orderby\', \'meta_value_num\');
        $q->set(\'order\', \'DESC\');
        $q->set( \'meta_query\', array( array(
           \'key\' => \'_thumbnail_id\',
           \'compare\' => \'>=\',
           \'value\' => \'0\'       
        )));
}

add_action( \'woocommerce_product_query\', \'my_shop_custom_products_query\' );

如果由于某种原因无法正常工作,请尝试更换meta_value_num 具有meta_value 看看这样行不行!

SO网友:Naycom

我已经实现了代码,但排序是按字母顺序进行的。虽然我想按产品进入日期排序:

function my_shop_custom_products_query( $q ) {
        $q->get( \'meta_key\', \'_thumbnail_id\' );
        $q->set(\'orderby\', \'meta_value\');
        $q->set(\'order\', \'DESC\');
        $q->set( \'meta_query\', array(  \'relation\' => \'OR\', array(
            
           \'orderby\' => \'meta_value\',
            \'order\' => \'DESC\',
            \'key\' => \'_thumbnail_id\',
           \'compare\' => \'NOT EXISTS\',
     //  \'value\' => \'0\'       
  
         
            
  
        ),
  array(
     \'key\' => \'_thumbnail_id\',
           \'compare\' => \'>=\',
       \'value\' => \'0\',       
  \'orderby\' => \'meta_value\',
       \'order\' => \'DESC\'
  )),
); 
}

add_action( \'woocommerce_product_query\', \'my_shop_custom_products_query\' );

相关推荐

警告:第56行的主题php中为Foreach()提供的参数无效

我发现了这个错误,但不知道该怎么办,我已经禁用了插件并再次激活了它们,但每个产品的评论页面上都显示了相同的错误。非常感谢你的帮助下面是确切的错误:警告:在/home/flowt/public\\u html/wp-content/themes/rubens/template/single-product/u-review中为foreach()提供的参数无效。php在线56所以我去了我的主题编辑器,下面是我在第56行看到的内容,但不确定我是否应该触摸这段代码,我不是一个程序员:printf(\'<di