这个solution 就像时间一样古老。
前面已经描述过了。放入函数。php
class iWC_Orderby_Stock_Status
{
public function __construct()
{
// Check if WooCommerce is active
if (in_array(\'woocommerce/woocommerce.php\', apply_filters(\'active_plugins\', get_option(\'active_plugins\')))) {
add_filter(\'posts_clauses\', array($this, \'order_by_stock_status\'), 2000);
}
}
public function order_by_stock_status($posts_clauses)
{
global $wpdb;
// only change query on WooCommerce loops
if (is_woocommerce() && (is_shop() || is_product_category() || is_product_tag())) {
$posts_clauses[\'join\'] .= " INNER JOIN $wpdb->postmeta istockstatus ON ($wpdb->posts.ID = istockstatus.post_id) ";
$posts_clauses[\'orderby\'] = " istockstatus.meta_value ASC, " . $posts_clauses[\'orderby\'];
$posts_clauses[\'where\'] = " AND istockstatus.meta_key = \'_stock_status\' AND istockstatus.meta_value <> \'\' " . $posts_clauses[\'where\'];
}
return $posts_clauses;
}
}
new iWC_Orderby_Stock_Status;
一切都在袋子里。这个解决方案适合我的需要。