WordPress WooCommerce 产品筛选:使用元查询和分类法优化产品检索
{ "title": "WordPress WooCommerce 产品筛选:使用元查询和分类法优化产品检索", "description": "本文档介绍了在 WooCommerce 中使用元查询和分类法来优化产品检索的代码示例。该代码示例允许用户通过不同的属性、分类、库存状态和排序选项来过滤产品,以提供更精准的搜索结果。", "keywords": "WooCommerce, 产品检索, 元查询, 分类法, 产品筛选, WordPress", "content": "$idarray=array();\n\t$data = array(\n\t\t'post_type' => 'qqproduct',\n\t\t'post_status' => 'publish',\n\t\t'orderby' => 'DATE',\n 'order' => 'DESC',\n\t\t'posts_per_page' => $per_page,\n\t\t'paged' => $paged,\n\t);\n\n$meta_query = array(); // Initialize the meta_query array outside the loop\n\nforeach ( $results as $key => $value ) {\n\t\n if($key == 'qcat') {\n\t\tif($value){\n\t\tif($value != 'all' ){\n\t\t\n\t\t$cat_query=array('relation' => 'OR',);\n\t\t$catos = (explode(",",$value));\n\t\t\n\t\tforeach ( $catos as $cato) {\n\t\t\t\t \n\t\t $cat_query[] = [\n\t\t 'taxonomy' => 'qqcpat',\n\t\t 'field' => 'term_id',\n\t\t 'terms' => $cato,\n\t\t ];\t\n\n\t\t$keys[] = $cato;\n\t\t\t\t\n }\t\n$data['tax_query']=array(array($cat_query),);\t\t\n\t\t\n\t\t\n\t\t\n\t\t}\n\t\t}\n\t\t}\n\t} elseif($key == 'offset') {\n\t} elseif($key == 'in_stock') {\n\t\t\n $meta_query[] = array(\n 'key' => 'qqp_qty',\n 'value' => array('0'),\n 'compare' => '>'\n );\n $keys[] = 'in_stock';\n\t\t\n\t} elseif ($key == 'sortby') {\n\t\t\n if ($value == 'newest') {\n $data['orderby'] = 'DATE';\n } elseif ($value == 'discount') {\n $meta_query[] = array(\n 'key' => 'qqpd_price',\n 'value' => '',\n 'compare' => 'NOT IN'\n );\n } elseif ($value == 'review') {\n $meta_query[] = array(\n 'key' => 'qq_product_rate',\n 'value' => '',\n 'compare' => 'NOT IN'\n );\n $data['orderby'] = 'meta_value_num';\n } elseif ($value == 'topsale') {\n $meta_query[] = array(\n 'key' => 'qq_total_views',\n 'value' => '',\n 'compare' => 'NOT IN'\n );\n $data['orderby'] = 'meta_value_num';\n }\n $keys[] = $value;\n }\n\n\n\n\nelse {\n if($value){\n\t$stros = (explode(",",$value));\n\t$trainer_query=array('relation' => 'OR',);\n\n\tforeach ( $stros as $stro) {\n\t\t\t \n\t $trainer_query[] = [\n\t 'key' => 'qq_att_'.$key,\n\t 'value' => $stro,\n\t 'compare' => 'LIKE',\n\t ];\t\t\n $keys[] = $stro;\n\t\t\t\t\n }\t\n\t\t\n\t$meta_query[] = $trainer_query;\n }\n}\n\n\n\nif (!empty($meta_query)) {\n $meta_query['relation'] = 'OR'; // Add the relation when meta_query is not empty\n $data['meta_query'] = $meta_query;\n}\n\t\n\n\t\n\n}
原文地址: https://www.cveoy.top/t/topic/qeal 著作权归作者所有。请勿转载和采集!