如何在处理公式后链接到插件管理-子菜单页面

时间:2013-08-26 作者:helle

我有一个带有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(). 但是如果我调用phpmg_list() url仍然是mg_new_item().

我知道我可以做一些header("Location: the-hardcoded-list-url"); 但我正在寻找WordPress常用的方法,即生成通用Url。

2 个回复
最合适的回答,由SO网友:helle 整理而成

经过更多的研究,我喜欢我真正想要的东西。不是为了解决问题,而是为了wordpress兼容的方式。

有一个函数名为:menu_page_url 它需要定义的段塞。还有wp_redirect

所以我们有两个wordpress函数要调用。在这种情况下:

$foo = menu_page_url("mg-pi-sub-list");
wp_redirect($foo);
就是这样。好的是,我遵守所有Wordpress规则,插件将在未来版本中兼容。

http://codex.wordpress.org/Function_Reference/wp_redirecthttp://codex.wordpress.org/Function_Reference/menu_page_url

使现代化

如果您的标题有问题,可以使用以下参数帮助您解决:

<form action="?page=your-sub_page-slug&noheaders=true">

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(), 等

结束

相关推荐

wp_get_referer not working properly after wp_redirect

感谢您的阅读!我正在创建的网站上有很多重定向。例如如果未登录用户访问“私人”页面,他将被重定向到自定义登录页面。如果用户登录,他将被重定向到访问登录表单之前访问的最后一个页面。让我们把这些页面称为“Profile”和“LogIn”。因此,如果一切顺利,应该:->未记录尝试访问Profile -> 重定向到LogIn -> 如果确定,重定向到Profile但是,当LogIn 调用wp\\u get\\u referer(),它不会返回Profile. 相反,它返回“2页”。就像“wp\\u