To\ prioritize\ the\ "in_stock"\ key\ in\ the\ WP\ query,\ you\ can\ modify\ the\ code\ as\ follows:\ \n\nphp\n\$idarray\ =\ array();\n\$data\ =\ array(\n 'post_type'\ =>\ 'qqproduct',\n 'post_status'\ =>\ 'publish',\n 'orderby'\ =>\ 'DATE',\n 'order'\ =>\ 'DESC',\n 'posts_per_page'\ =>\ \$per_page,\n 'paged'\ =>\ \$paged,\n);\n\n\$meta_query\ =\ array();\ //\ Initialize\ the\ meta_query\ array\ outside\ the\ loop\n\$has_in_stock\ =\ false; \ //\ Variable\ to\ check\ if\ \"in_stock\"\ key\ is\ present\n\nforeach\ (\$results\ as\ \$key\ =>\ \$value\ )\ {\n if\ (\$key\ ==\ 'qcat'\ )\ {\n if\ (\$value\ )\ {\n if\ (\$value\ !=\ 'all'\ )\ {\n \$cat_query\ =\ array('relation'\ =>\ 'OR');\n \$catos\ =\ explode(',',\ $value);\n foreach\ (\$catos\ as\ \$cato\ )\ {\n \$cat_query[]\ =\ [\n 'taxonomy'\ =>\ 'qqcpat',\n 'field'\ =>\ 'term_id',\n 'terms'\ =>\ \$cato,\n ];\n \$keys[]\ =\ \$cato;\n }\n \$data['tax_query']\ =\ array(array(\$cat_query));\n }\n }\n } elseif\ (\$key\ ==\ 'offset'\ )\ {\n } elseif\ (\$key\ ==\ 'in_stock'\ )\ {\n \$meta_query[]\ =\ array(\n 'key'\ =>\ 'qqp_qty',\n 'value'\ =>\ array('0'),\n 'compare'\ =>\ '>',\n );\n \$keys[]\ =\ 'in_stock';\n \$has_in_stock\ =\ true; \ //\ Set\ flag\ to\ true\n } elseif\ (\$key\ ==\ 'sortby'\ )\ {\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 } else\ {\n if\ (\$value\ )\ {\n \$stros\ =\ explode(',',\ $value);\n \$trainer_query\ =\ array('relation'\ =>\ 'OR');\n foreach\ (\$stros\ as\ \$stro\ )\ {\n \$trainer_query[]\ =\ [\n 'key'\ =>\ 'qq_att_'\ .\ $key,\n 'value'\ =>\ \$stro,\n 'compare'\ =>\ 'LIKE',\n ];\n \$keys[]\ =\ \$stro;\n }\n \$meta_query[]\ =\ \$trainer_query;\n }\n }\n}\n\n//\ Add\ \"in_stock\"\ key\ as\ the\ first\ condition\ in\ meta_query\nif\ (\$has_in_stock\ )\ {\n \$in_stock_query\ =\ array(\n 'key'\ =>\ 'qqp_qty',\n 'value'\ =>\ array('0'),\n 'compare'\ =>\ '>',\n );\n array_unshift(\$meta_query,\ $in_stock_query);\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\n\nThis\ modification\ will\ ensure\ that\ the\ "in_stock"\ key\ is\ prioritized\ and\ only\ the\ newest\ items\ that\ are\ in\ stock\ will\ be\ displayed.

Prioritize

原文地址: https://www.cveoy.top/t/topic/qeet 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录