Возникла задача выводить вверх поиска продукты из 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}";
});