Hiển thị các sản phẩm WooCommerce ngẫu nhiên theo mặc định trên trang cửa hàng

Aug 16 2020

Tôi đang cố gắng hiển thị sản phẩm ngẫu nhiên trên trang cửa hàng của mình với mã này:

add_filter('woocommerce_get_catalog_ordering_args', 'set_sort_order');
function set_sort_order($args) { $args['orderby'] = 'rand';
    return ($args);    
}

Nhưng mã này tạo trang danh mục sản phẩm ngẫu nhiên, nhưng tôi chỉ cần trang lưu trữ - trang đầu. Không có trên trang danh mục sản phẩm. tôi làm nó như thế nào ?

Trả lời

2 LoicTheAztec Aug 16 2020 at 11:03

Thay vào đó, hãy sử dụng những điều sau để sắp xếp sản phẩm ngẫu nhiên trên các trang lưu trữ của cửa hàng:

// Set default orderby query to "rand" option for shop archive pages
add_filter('woocommerce_get_catalog_ordering_args', 'shop_default_orderby_rand');
function shop_default_orderby_rand($args) { if( is_shop() && ( ! isset($_GET['orderby']) || 'menu_order' === $_GET['orderby'] ) ) { $args['orderby'] = 'rand';
        return ($args);
    }
}

Hoặc bạn cũng có thể sử dụng cái này:

// Set default orderby query to "rand" for shop archive pages
add_action( 'pre_get_posts', 'shop_default_orderby_rand' );
function shop_default_orderby_rand( $query ) {
    if ( is_shop() && ( ! isset($_GET['orderby']) || 'menu_order' === $_GET['orderby'] ) ) {
        $query->set( 'orderby', 'rand' );
    }
}

Chèn mã vào tệp functions.php của chủ đề con đang hoạt động (hoặc chủ đề hoạt động). Đã thử nghiệm và hoạt động.