我正在忙碌开发一个WordPress应用程序,我需要能够使用WordPress函数传递URL参数。我使用add_query_arg()函数添加URL参数。但是,当我尝试使用get_query_var()在其他页面中获取传递的值时,没有返回任何内容。当我使用$_GET['var_name']时,返回值。出现这种情况的可能原因是什么?我可以成功地向URL添加参数,但我无法访问它们。
add_query_arg()
get_query_var()
$_GET['var_name']
bttbmeg01#
我设法让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中找到
v8wbuo2f2#
要进行故障排除,请使用以下代码确定请求中使用了哪些变量
global $wp_query; var_dump($wp_query->query_vars);
字符串
igetnqfo3#
如果您查看Codex,您会发现实际上需要做一些调整才能使WP开始阅读您的查询字符串。Codex(在自定义查询变量下)摘录:为了能够添加和使用您自己的自定义查询变量,您追加到URL(例如:“mysite com/some_page/?my_var=foo”-例如使用add_query_arg()),您需要将它们添加到WP_Query可用的公共查询变量中。这些变量是在WP_Query示例化时构建的,但幸运的是,在它们实际用于填充WP_Query的$query_vars属性之前,它们通过了过滤器“query_vars”。
2wnc66cl4#
get_query_var()只检索可被WP_Query识别的公共查询变量。这意味着如果您创建了自己的自定义URL,并使用它们自己的查询变量,那么get_query_var()将不会检索它们,除非进行进一步的工作。Documentation
4条答案
按热度按时间bttbmeg01#
我设法让
get_query_var()
函数工作。要成功地使用这两个函数,你需要将查询变量添加到wordpress的查询变量数组中。下面是一个代码示例。字符串
现在可以使用
get_query_var()
和add_query_arg()
,如下所示:添加查询var和值
型
获取查询var值
型
更多信息和代码示例可以在Codex:get_query_var和add_query_arg中找到
v8wbuo2f2#
要进行故障排除,请使用以下代码确定请求中使用了哪些变量
字符串
igetnqfo3#
如果您查看Codex,您会发现实际上需要做一些调整才能使WP开始阅读您的查询字符串。
Codex(在自定义查询变量下)
摘录:
为了能够添加和使用您自己的自定义查询变量,您追加到URL(例如:“mysite com/some_page/?my_var=foo”-例如使用add_query_arg()),您需要将它们添加到WP_Query可用的公共查询变量中。这些变量是在WP_Query示例化时构建的,但幸运的是,在它们实际用于填充WP_Query的$query_vars属性之前,它们通过了过滤器“query_vars”。
2wnc66cl4#
get_query_var()只检索可被WP_Query识别的公共查询变量。这意味着如果您创建了自己的自定义URL,并使用它们自己的查询变量,那么get_query_var()将不会检索它们,除非进行进一步的工作。
Documentation