我有一个带有3个子菜单页面的插件。在一页中是一个公式(在一页中是一些文本,在一页中是项目列表)。当我提交表格时,会进行一些处理。之后,我不想返回表单页面,但WP shell会将我重定向到其他子menu\\u页面之一(在本例中是一个列表)。
我怎样才能做到这一点?
add_menu_page( \'page1 main page\', \'0\', \'manage_options\', \'mg-pi\', \'mg_backend\');
add_submenu_page( \'mg-pi\', \'list smthing\', \'0\', \'manage_options\', \'mg-pi-sub-list\', \'mg_list\');
add_submenu_page( \'mg-pi\', \'create\', \'0\', \'manage_options\', \'mg-pi-sub-create\', \'mg_new_item\');
所以在
mg_new_item()
是处理,然后它将外壳重定向到
mg_list()
. 但是如果我调用php
mg_list()
url仍然是
mg_new_item()
.
我知道我可以做一些header("Location: the-hardcoded-list-url");
但我正在寻找WordPress常用的方法,即生成通用Url。
SO网友:kaiser
简单使用add_query_arg()
, remove_query_arg()
和get_query_var()
.
在页面链接上,使用一个简单的查询变量,如step=one
.
$query_arg = add_query_arg( \'step\', \'one\', $_SERVER[\'REQUEST_URI\'] );
然后,当用户处理表单时,只需重新加载页面。然后简单检查一下
0 !== get_query_var( \'step\' )
AND \'one\' !== get_query_var( \'step\' )
并进一步处理。如果你想回去,就用
remove_query_arg()
, 等