我想创建一个功能,不是隐藏没有缩略图的产品,而是以这样的方式排序:具有突出显示图像的产品首先出现在商店页面上,而那些没有突出显示图像的产品出现在最后。我尝试修改已经存在的功能:
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
添加到这个已有的功能中,但没有任何反应,继续向我隐藏产品。在这张照片中,该功能仅隐藏产品,没有缩略图。 我不知道如何解决...
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' );
value
中,您需要输入占位符图像的当前ID。但这种排序使得产品的加载变得更糟;/我有大约 25k 个产品...
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' => '31594'
)));
}
add_action( 'woocommerce_product_query', 'my_shop_custom_products_query' );