Я использую фильтр posts_where для того, чтобы изменить пользовательский поиск в сети, но я обнаружил, что некоторые виджеты по умолчанию, такие как «более свежие посты», тоже используют этот фильтр, и их поведение также изменяется. Я пытаюсь найти способ избежать того, чтобы что-то кроме поиска пользователей использовало фильтр posts_where.
Это мой код:
add_filter( 'posts_where' , 'posts_where_statement' );
function posts_where_statement( $where ) {
global $wp_query;
global $expp;
global $wpdb;
$local_db = $wpdb->prefix."posts";
$front_page_id = get_option('page_on_front');
if ( ('page' != get_option('show_on_front') || $front_page_id != $wp_query->query_vars['page_id']) && (!($wp_query->is_search)) )
return $where;
//some $where modifications
remove_all_actions ( '__after_loop');
return $where;
}
Есть ли какая-либо другая функция или способ заставить этот хук / фильтр работать только с поисковым запросом? (тот, который выбирает результаты из пользовательского ввода)
$q
хотя.