【问题标题】:Display WooCommerce products randomly by default on shop page默认情况下,在商店页面上随机显示 WooCommerce 产品
【发布时间】:2020-08-16 10:15:24
【问题描述】:

我正在尝试使用此代码在我的商店页面上随机显示产品:

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

但是这段代码会生成随机的产品类别页面,但我只需要存储页面-首页。不在产品类别页面上。我该怎么做?

【问题讨论】:

    标签: php wordpress woocommerce sql-order-by shop


    【解决方案1】:

    仅在商店存档页面上使用以下命令对产品进行随机排序:

    // 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 文件中插入代码。经过测试并且可以工作。

    【讨论】:

      猜你喜欢
      • 2017-06-24
      • 1970-01-01
      • 2018-11-13
      • 2022-01-26
      • 1970-01-01
      • 2020-11-26
      • 2018-08-02
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多