我访问的页面如下:
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();
时,它不会。
有人能帮忙吗?
答案 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)));