我正忙着开发一个WordPress应用程序,我需要能够使用WordPress函数传递url参数。我使用add_query_arg()
函数添加url参数。但是,当我尝试使用get_query_var()
在其他页面中获取传递的值时,不会返回任何内容。当我使用$_GET['var_name']
时,会返回值。
这种情况可能的原因是什么?我可以成功地向url添加参数,但我无法访问它们。
答案 0 :(得分:12)
我设法让get_query_var()
功能正常工作。
要成功使用这两个函数,需要将查询变量添加到wordpress的查询变量数组中。这是一个代码示例。
function add_query_vars_filter( $vars ){
$vars[] = "query_var_name";
return $vars;
}
//Add custom query vars
add_filter( 'query_vars', 'add_query_vars_filter' );
现在您可以使用get_query_var()
和add_query_arg()
,如下所示:
添加查询var和值
add_query_arg( array('query_var_name' => 'value'), old_url );
获取查询var值
$value = get_query_var('query_var_name');
可以在Codex找到更多信息和代码示例:get_query_var和add_query_arg
答案 1 :(得分:4)
如果您查看Codex,您会发现实际上需要做一些小工作才能让WP开始阅读您的查询字符串。
Codex(在自定义查询变量下)
摘录:
为了能够添加和使用您附加到URL的自定义查询变量(例如:“mysite com / some_page /?my_var = foo” - 例如使用add_query_arg()),您需要添加它们WP_Query可用的公共查询变量。这些是在WP_Query实例化时构建的,但幸运的是,它们在实际用于填充WP_Query的$ query_vars属性之前通过过滤器“query_vars”传递。
答案 2 :(得分:1)
要进行故障排除,请使用以下代码在请求中使用哪些变量
global $wp_query;
var_dump($wp_query->query_vars);