您的筛选器:
function add_query_vars_filter( $vars ){
$vars[] = "getvar";
return $vars;
}
add_filter( \'query_vars\', \'add_query_vars_filter\' );
是正确的。当WordPress开始组装查询变量列表时,此函数将向列表中添加“getvar”。
但是,您可以立即检查变量是否在到达该点之前设置好。这个query_vars
筛选尚未发生。这表明您对事件/筛选器的理解不完整。当你添加过滤器时,它不会执行里面的内容,就像如果我告诉你一旦你付了钱就要吃食物一样,你会等到你付了钱才吃,你不会马上吃。
因此:
当“query\\u vars”过滤器出现时,您告诉WordPress执行一个函数,您检查是否存在非法的查询变量“getvar”,然后,“query\\u vars”过滤器出现,并且该函数“getvar”成为合法的安全查询变量,因此您需要检查查询变量after 该函数被执行,只是在文件的更深处不会执行。你应该参与一个动作,比如init
然后在那里进行检查。