可以避免在中执行SQLWP_Query
使用posts_pre_query
滤器
例如,插件使用它将默认搜索外包给第三方搜索引擎。
下面是一个示例,我们可以使用空posts数组覆盖前端的主搜索查询,并避免运行SQL搜索查询:
add_filter( \'posts_pre_query\', function( $posts, \\WP_Query $query ){
if( $query->is_search() && $query->is_main_query() && ! is_admin() ) {
return array();
}
return $posts;
}, 10, 2 );
由于我们返回的是一个空数组,我认为我们不需要调整
$query->found_posts
或
$query->max_num_pages
因为它们默认为零。