WP_query перехватывает перед выполнением поискового запроса

Кто-нибудь знает, есть ли крючок перед выполнением поискового запроса (не в основном цикле), чтобы изменить параметр 's', чтобы избежать разрыва фразы WordPress? Примеры приветствуются … спасибо

PS: Я также пробовал так, как следует, но первая часть SQL-запроса, похоже, указывает, что WP уже выполнил поиск, а затем повторно запустил запрос, отфильтрованный post_ids, который был сначала найден:

function alter_the_query( $where = '' ) { global $wpdb, $table_prefix, $wp_query; $tmpQobj = $wp_query->queried_object; $tmpTitle = $wp_query->queried_object->post_title; $where .= $wpdb->prepare( " AND ({$table_prefix}posts.post_title like %s OR {$table_prefix}posts.post_content like %s )", "%{$tmpTitle}%", "%{$tmpTitle}%" ); debug($where); return $where; } add_filter( 'posts_where', 'alter_the_query' ); 

И это содержание значения запроса (* обозначает префикс таблицы), возвращаемого отладкой:

 [request] => SELECT SQL_CALC_FOUND_ROWS ***_posts.ID FROM ***__posts WHERE 1=1 AND ***__posts.ID IN (534,868,911,917) AND ***__posts.post_type IN ('multimedia', 'news', 'social_project', 'publication') AND ((***__posts.post_status = 'publish')) AND (***__posts.post_title like '%string to search%' OR ***__posts.post_content like '%string to searchs%' ) ORDER BY FIELD( ***__posts.ID, 534,868,911,917 ) LIMIT 0, 3 

Как вы видите, первоначальный поиск уже выполнен, и мои изменения затрагивают только второй запрос … Я не знаю, почему разработчики WP Core сделали это таким образом, но это довольно кошмар …

Как я могу перехватить первый запрос, который я выбрал для первоначального поиска?

Solutions Collecting From Web of "WP_query перехватывает перед выполнением поискового запроса"