我正在使用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
虽然不是粉丝。