Возникла задача выводить вверх поиска продукты из WooCommerce. Чтобы они были выше чем посты в блоге.
Проблема — часто заходишь на сайт, чтобы найти какой-то продукт в каталоге. Но поиск постоянно сверху выдавал посты из блога с похожими словами. А хочется чтобы Продукты были сверху.
Нашел такое решение:
<?php
/*
Plugin Name: _ Search Product To Top
Description: Вывод продуктов в топ поиска на сайте
Author: uptimizt
Author URI: https://github.com/uptimizt
Version: 0.1
*/
add_action( 'pre_get_posts', function( $query ) {
if ( $query->is_search() ) {
$query->set( 'orderby', 'relevance' );
}
} );
add_filter( 'posts_search_orderby', function( $search_orderby ) {
global $wpdb;
return "{$wpdb->posts}.post_type LIKE 'product' DESC, {$search_orderby}";
});