Php 默认情况下,在商店页面上随机显示WooCommerce产品

Php 默认情况下,在商店页面上随机显示WooCommerce产品,php,wordpress,woocommerce,sql-order-by,shop,Php,Wordpress,Woocommerce,Sql Order By,Shop,我尝试在我的店铺页面上随机显示产品,代码如下: add_filter('woocommerce_get_catalog_ordering_args', 'set_sort_order'); function set_sort_order($args) { $args['orderby'] = 'rand'; return ($args); } 但这段代码会生成随机的产品类别页面,但我只需要存储页面-首页。不在产品类别页面上。如何操作?请使用以下方法,仅在商店存档页面上随

我尝试在我的店铺页面上随机显示产品,代码如下:

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

但这段代码会生成随机的产品类别页面,但我只需要存储页面-首页。不在产品类别页面上。如何操作?

请使用以下方法,仅在商店存档页面上随机对产品进行排序:

// 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);
    }
}
或者你也可以用这个:

// 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' );
    }
}
在活动子主题(或活动主题)的functions.php文件中插入代码。测试和工作