перезаписать функцию поиска в wordpress (sql и php)

Есть ли способ переписать функцию поиска по умолчанию в wordpress? Я попытался использовать фильтры, но они только позволяют добавлять в запрос … или, возможно, переписывать весь запрос с помощью posts_request. Если я переписал это, никакие другие запросы не будут работать. У меня есть следующий код

function my_posts_request_filter($input) { if ( is_search() && isset($_GET['s'])) { global $wpdb; } return $input; } add_filter('posts_request','my_posts_request_filter'); 

Я мог бы переопределить $ input с моим пользовательским SQL, но на странице есть виджет, который показывает последние сообщения, и это не будет отображаться, если я это сделаю. Есть ли способ переписать функцию поиска?

Related of "перезаписать функцию поиска в wordpress (sql и php)"

Это не пуленепробиваемый, но при первом вызове WP_Query для запроса на поиск ( может быть сценарий, когда плагин вызывает его перед WordPress, но это маловероятно), вы можете отключить фильтр после запуска функции.

 function my_posts_request_filter($input) { if ( is_search() && isset($_GET['s'])) { global $wpdb; // do your funky SQL remove_filter('posts_request','my_posts_request_filter'); } return $input; }