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

问题描述 投票:2回答:2

我访问的页面如下: 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();它没有。

有人可以帮忙吗?

php wordpress redirect query-string
2个回答
3
投票

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

所以尝试做类似......

$origURL = remove_query_arg( 'step' );

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

0
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.