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

标签 php wordpress woocommerce sql-order-by

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

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 文件中。经过测试并有效。

关于php - 默认情况下,在商店页面上随机显示 WooCommerce 产品,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63435640/

相关文章:

php - 一些 php 帮助制作一个 'approve form' 页面

css - 这个模板的 CSS 有什么问题导致它部分损坏

css - 如何在事件 CSS 时更改按钮颜色?

wordpress - 根据产品 ID 获取产品变体

php - 删除子主题中的父主题 Action

php - 将产品自定义字段添加到 WooCommerce 已完成订单电子邮件

PHP:最简单的方法是在第一个 6 个月前获取月份的日期?

php - 混淆了bindValue() 和bindParam() 之间的关系吗?

php - Woocommerce - 允许针对不同状态再次订购

php - 带接口(interface)的 Laravel 动态路由