상점 페이지에서 기본적으로 WooCommerce 제품을 무작위로 표시

Aug 16 2020

이 코드를 사용하여 내 상점 페이지에 무작위로 제품을 표시하려고합니다.

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

하지만이 코드는 임의의 제품 카테고리 페이지를 만들지 만, 페이지-첫 페이지 만 저장하면됩니다. 상품 카테고리 페이지에 없습니다. 내가 어떻게 해 ?

답변

2 LoicTheAztec Aug 16 2020 at 11:03

대신 다음을 사용하여 상점 아카이브 페이지에서만 무작위로 제품을 정렬하십시오.

// 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 파일에 코드를 삽입합니다. 테스트 및 작동합니다.