我访问的页面如下:
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();
它没有。
有人可以帮忙吗?
我认为你的问题是你在添加新版之前没有清除旧的“步骤”。 add_query_arg()
不会更新字符串,它会添加它。
所以尝试做类似......
$origURL = remove_query_arg( 'step' );
wp_redirect( add_query_arg( 'step', 4, $origURL ) );
wp_redirect(esc_url(add_query_arg('step'=>'4',$ origURL)));