Prioritize In-Stock Products in WordPress Query
$idarray=array();$data=array('post_type' => 'qqproduct','post_status' => 'publish','orderby' => 'DATE','order' => 'DESC','posts_per_page' => $per_page,'paged' => $paged,);$meta_query=array(); // Initialize the meta_query array outside the loop$in_stock_meta_query=array( // Create a separate meta_query for "in_stock"'key' => 'qqp_qty','value' => array('0'),'compare' => '>');foreach($results as $key => $value){if($key == 'qcat'){if($value){if($value != 'all'){$cat_query=array('relation' => 'OR',);$catos = (explode(",",$value));foreach($catos as $cato){$cat_query[]=array('taxonomy' => 'qqcpat','field' => 'term_id','terms' => $cato,);$keys[]=$cato;}$data['tax_query']=array(array($cat_query),);} } } elseif($key == 'offset'){ } elseif($key == 'sortby'){if($value == 'newest'){$data['orderby'] = 'DATE';} elseif($value == 'discount'){$meta_query[]=array('key' => 'qqpd_price','value' => '','compare' => 'NOT IN');} elseif($value == 'review'){$meta_query[]=array('key' => 'qq_product_rate','value' => '','compare' => 'NOT IN');$data['orderby'] = 'meta_value_num';} elseif($value == 'topsale'){$meta_query[]=array('key' => 'qq_total_views','value' => '','compare' => 'NOT IN');$data['orderby'] = 'meta_value_num';}$keys[]=$value;} else{if($value){$stros = explode(",",$value);$trainer_query = array('relation' => 'OR');foreach($stros as $stro){$trainer_query[]=array('key' => 'qq_att_' . $key,'value' => $stro,'compare' => 'LIKE',);$keys[]=$stro;}$meta_query[]=$trainer_query;}} }if(!empty($meta_query)){$meta_query['relation'] = 'OR'; // Add the relation when meta_query is not empty$data['meta_query'] = $meta_query;} // Add the "in_stock" meta query as the first item in the meta_query arrayif(!empty($meta_query)){array_unshift($data['meta_query'],$in_stock_meta_query);} else{$data['meta_query'] = array($in_stock_meta_query);}
原文地址: https://www.cveoy.top/t/topic/qee1 著作权归作者所有。请勿转载和采集!