Afficher les produits WooCommerce de manière aléatoire par défaut sur la page de la boutique
J'essaye d'afficher des produits au hasard sur ma page de boutique avec ce code:
add_filter('woocommerce_get_catalog_ordering_args', 'set_sort_order');
function set_sort_order($args) { $args['orderby'] = 'rand';
return ($args);
}
Mais ce code crée une page de catégorie de produit aléatoire, mais je dois simplement stocker la page - première page. Pas sur la page de catégorie de produit. Comment puis-je le faire ?
Réponses
2 LoicTheAztec
Utilisez plutôt ce qui suit pour trier les produits au hasard sur les pages d'archives de la boutique uniquement:
// 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);
}
}
Ou vous pouvez également utiliser celui-ci:
// 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' );
}
}
Insérez le code dans le fichier functions.php de votre thème enfant actif (ou thème actif). Testé et fonctionne.