0

我正在为wordpress设计一个主题,但是在向url添加查询时,会出现问题:

这两种情况,我在文件 class-wp.php 中的 WP->parse_request(..) 中使用 $_GET['var'] :

当 url 像这样 "loscalhost/?var=123", $_GET['var'] return 123;

当 url 像这样“localhost/category/test/?var=123”时,它不起作用,$_GET['var'] return null。

有人可以告诉我这有什么问题吗?

4

2 回答 2

1

WordPress 旨在忽略它不期望的任何 URL 查询参数。如果你想使用查询变量,那么你必须通知 WordPress 期望它。在你的情况下:

function filter_add_query_vars($query_vars)
{   
    $query_vars[] = 'var'; 
    return $query_vars;
}
add_filter( 'query_vars', 'filter_add_query_vars' );

将代码放在主题的functions.php中

于 2013-03-25T16:38:47.960 回答
0

这是一个草率的解决方案:因为我什至可以使用 $_GET 来接收 URL 中的变量,例如 wp-blog-header 文件中的“localhost/category/test/?var=123”,但我可以使用 $_SERVER ['REQUEST_URI'] 来检索整个 URL,所以我更改了 wp-blog-header.php 中的代码。我改变

wp();

成为:

$url_array = explode('?', $_SERVER['REQUEST_URI']);
wp($url_array[1]);

它可以工作,因为 wp() 也会收到额外的查询。

但是我还是不明白为什么 $_GET 不起作用,所以我也等待一个有效的解释......

于 2013-03-26T02:37:07.823 回答