No WooCommerce, a busca e as páginas de categorias normalmente mostram os resultados ordenados pela relevância ou ordem padrão da loja. Isso pode fazer com que produtos antigos apareçam antes dos lançamentos.
Se você quer que sempre apareçam primeiro os produtos mais novos, é só adicionar o código abaixo no arquivo functions.php do seu tema filho ou usando um plugin de snippets.
1. Ordenar resultados de busca por data (mais novos primeiro)
Este código altera a ordem apenas na busca de produtos, sem afetar a busca geral do site.
add_action( 'pre_get_posts', 'mudar_ordem_busca_produtos' );
function mudar_ordem_busca_produtos( $query ) {
if ( ! is_admin() && $query->is_main_query() && $query->is_search() ) {
// Garante que é a busca de produtos
if ( isset( $_GET['post_type'] ) && $_GET['post_type'] === 'product' ) {
$query->set( 'orderby', 'date' );
$query->set( 'order', 'DESC' ); // Mais novos primeiro
}
}
}
2. Ordenar categorias e tags de produto por data (mais novos primeiro)
Este código altera a ordem nas páginas de categorias e tags de produto.
add_action( 'pre_get_posts', 'mudar_ordem_categoria_produtos' );
function mudar_ordem_categoria_produtos( $query ) {
if ( ! is_admin() && $query->is_main_query() && ( is_product_category() || is_product_tag() ) ) {
$query->set( 'orderby', 'date' );
$query->set( 'order', 'DESC' ); // Mais novos primeiro
}
}
💡 Observações importantes:
- Sempre faça um backup antes de editar arquivos do tema.
- Se usar um tema que recebe atualizações, adicione os códigos em um tema filho ou num plugin de snippets para não perder as alterações.
- Se você usa um plugin de busca avançada (como FacetWP ou JetSmartFilters), a ordenação pode precisar ser configurada nele.
Com isso, tanto a busca quanto as páginas de categorias e tags vão mostrar primeiro os produtos mais novos, ajudando a destacar lançamentos e novidades da sua loja.
Até a próxima! 🚀