我正在为wordpress设计一个主题,但在向网址添加查询时,会出现问题:
这两种情况,我在文件类-wp.php中的WP-> parse_request(..)中使用$ _GET ['var']:
当url像这样“loscalhost /?var = 123”,$ _GET ['var']返回123;
当url像这样“localhost / category / test /?var = 123”时,它不起作用,$ _GET ['var']返回null。
有人可以告诉我这有什么问题吗?
答案 0 :(得分: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
中答案 1 :(得分:0)
这是一个草率的解决方案:因为我甚至可以使用$ _GET来接收URL中的变量,例如wp-blog-中的“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不起作用,所以我也等待有效的解释......