Пока сделал так, но это конечно костыль.
// убираем автоматический вывод продуктов и категорий с главной
remove_action( 'woocommerce_before_main_content', 'woocommerce_output_content_wrapper', 10);
remove_action( 'woocommerce_after_main_content', 'woocommerce_output_content_wrapper_end', 10);
add_action('woocommerce_before_main_content', 'my_theme_wrapper_start', 10);
add_action('woocommerce_after_main_content', 'my_theme_wrapper_end', 10);
function my_theme_wrapper_start() {
if (is_shop()) {
// подавляем вывод контента
ob_start();
}
echo '<div id="primary" class="site-content">';
}
function my_theme_wrapper_end() {
if (is_shop()) {
// подавляем вывод контента
ob_end_clean();
echo 'Конткнт который должен быть на странице';
// вставляем товары с нужной сортировкой
echo do_shortcode('[recent_products per_page="6" columns="3" orderby="date" order="desc"]');
}
echo '</div>';
}