WordPress and $_GET Params

时间:2012-03-19 作者:wesbos

这是一个奇怪的问题,我在使用WordPress之前从未遇到过。

我有一个网站,启用了永久链接。

url可以是http://mysite.com/page-name/?anyParamName=testing

然后当我使用print_r($_GET); 或回声$_GET["anyParamName"] 我分别得到一个空数组或什么都没有。

纯PHP文件工作正常,因此它不是服务器问题。WordPress对重新连接get参数有什么作用吗?真的很困惑。

4 个回复
SO网友:Stephen Harris

对于自定义参数,应使用WordPress注册它们:

add_action(\'init\',\'wpse46108_register_param\');
function wpse46108_register_param() { 
    global $wp; 
    $wp->add_query_var(\'anyParamName\'); 
}
然后,可以使用找到“anyParamName”的值get_query_var

$anyParamNameValue = get_query_var(\'anyParamName\').

SO网友:Kresimir Pendic

知道这是一个老问题,但我们可以自由访问“init”钩子中的任何post/get参数(在WordPress更改之前),这是有文档记录的here, 外观:

add_action( \'init\', \'process_post\' );

function process_post() {
     if( isset( $_POST[\'unique_hidden_field\'] ) ) {
          // process $_POST data here, read and modify as you wish
     }
}

SO网友:Owais Alam

n为了能够添加和使用附加到URL的自定义查询变量(eg: "http://example.com/some_page/?my_var=foo" - 例如,使用add\\u query\\u arg())需要将它们添加到WP\\u query可用的公共查询变量中。这些是在WP\\u Query实例化时建立的,但幸运的是,它们在实际用于填充WP\\u Query的$Query\\u vars属性之前通过了一个过滤器“Query\\u vars”。

因此,要将新的自定义查询变量公开到WP\\u query hook到“query\\u vars”过滤器中,请将查询变量添加到过滤器传递的$vars数组中,并记住将该数组作为过滤器函数的输出返回。见下文:

function add_query_vars_filter( $vars ) {
  $vars[] = "my_var";
  return $vars;
}
add_filter( \'query_vars\', \'add_query_vars_filter\' );
有关更多详细信息,请查看https://codex.wordpress.org/Function_Reference/get_query_var

SO网友:Yaakov Aglamaz

我也有同样的问题:

我访问的页面有永久链接/焦点加载了右侧页面(不是文件夹),但GET参数为空。我重命名了文件夹(在文件系统中),并且\\u GET数组现在正在按预期进行。

结束

相关推荐

Changing attachment urls?

如何更改附件页URL的格式/[post-url]/[attachment-name]/ 到/media/[attachment-name]/? 我知道我可以覆盖get_attachment_link 通过attachment_link 过滤器,但我想我需要更改重定向结构,以便WordPress知道如何处理这些URL?