Variables posting twice

时间:2013-06-22 作者:user34416

我希望创建一个新变量,如codex中所述,但在提交URL时,变量会两次提交给我的函数

我已经在一个插件中尝试了这一点function.php. 我还尝试使用wp_reset_query()

以下是我的示例代码:

add_filter(\'query_vars\', \'my_function\');
function my_function ($vars) {    
  $vars[] = \'Q1\';
  $vars[] = \'Q2\';    
  return $vars;    
}

add_action(\'parse_query\', \'query_var\');    
function query_var () {    
  if (get_query_var(\'Q1\')){    
    echo (\'hello\');    
  }
}

1 个回复
最合适的回答,由SO网友:Milo 整理而成

这个parse_query 对每个查询调用操作(菜单项、侧栏最近发布的小部件等),但是get_query_var 从主查询中提取,这样,尽管查询变量在这些查询中不存在,但所有查询的条件都是真的。您需要检查传递给连接到的函数的查询对象parse_query:

add_action(\'parse_query\', \'query_var\'); 
function query_var( $query ) { 
  if ( isset( $query->query_vars[\'Q1\'] ) ){    
    echo (\'hello\');    
  }
}

结束

相关推荐

hooks & filters and variables

我是updating the codex page example for action hooks, 在游戏中完成一些可重用的功能(最初是针对这里的一些Q@WA)。但后来我遇到了一个以前没有意识到的问题:在挂接到一个函数以修改变量的输出后,我再也无法决定是要回显输出还是只返回它。The Problem: 我可以修改传递给do_action 用回调函数钩住。使用变量修改/添加的所有内容仅在回调函数中可用,但在do_action 在原始函数内部调用。很高兴:我将其修改为一个工作示例,因此您可以将其复制/粘贴