WordPress的wp_redirect()与add_query_arg()没有更新全局$ _GET

时间:2015-03-17 16:00:10

标签: php wordpress redirect query-string

我访问的页面如下:
example.com?step=3
直到这里,它才有效,如果我使用$_GET['step']就可以了,它就是3。

但是,在第3步之后做了它需要做的事情,我打电话给: wp_redirect( add_query_arg( 'step', 4 ) );
查看Devtools的网络选项卡,它可以使用302访问:example.com?step=4
但在页面$_GET['step']仍然是3!比它进入无限循环。

我已记录$_SERVER['QUERY_STRING']并且符合预期step=4,但在下一行,我致电$_GET['step']并且它是3!

当我直接访问example.com?step=4时,$_GET['step']为4,但当我使用wp_redirect();时,它不会。

有人能帮忙吗?

2 个答案:

答案 0 :(得分:3)

我认为你的问题是你没有清除旧的"步骤"在添加新的之前。 add_query_arg()没有更新字符串,它会添加它。

所以尝试做类似的事情......

$origURL = remove_query_arg( 'step' );

wp_redirect( add_query_arg( 'step', 4, $origURL ) );

答案 1 :(得分:0)

wp_redirect(esc_url(add_query_arg(' step' =>' 4',$ origURL)));