我正在为我的管理页面测试不同的布局,我发现确定加载哪个布局的最简单方法是使用URL参数。其中一个参数是“fullscreen=1”,例如,它隐藏了管理菜单。问题是,每当我通过提交表单来保存帖子/自定义帖子类型时,WordPress都会在不保留参数的情况下重定向我,从而通过添加回管理菜单来破坏我的布局。。。
有没有一种简单的方法来实现这一点?
我正在为我的管理页面测试不同的布局,我发现确定加载哪个布局的最简单方法是使用URL参数。其中一个参数是“fullscreen=1”,例如,它隐藏了管理菜单。问题是,每当我通过提交表单来保存帖子/自定义帖子类型时,WordPress都会在不保留参数的情况下重定向我,从而通过添加回管理菜单来破坏我的布局。。。
有没有一种简单的方法来实现这一点?
我终于想出了这个办法。事实证明,我太专注于过滤器和操作了,以至于忘记了基础知识。
要在保存帖子(通过提交表单)后保留任何自定义URL参数,请执行以下操作:
使用检查要保留的参数的条件筛选管理员URL(based on this answer), 像这样:
add_filter(\'admin_url\',\'add_fullscreen_param\');
function add_fullscreen_param( $link ) {
if(isset($_REQUEST[\'fullscreen\']) && $_REQUEST[\'fullscreen\'] == \'1\') {
$params[\'fullscreen\'] = \'1\';
}
$link = add_query_arg( $params, $link );
return $link;
}
然后,您所要做的就是确保将该请求与表单一起发送,因为它将在重定向回您的帖子/页面/自定义帖子类型之前激活上面的过滤器。为此,只需添加一个隐藏的输入。if(isset($_REQUEST[\'fullscreen\']) && $_REQUEST[\'fullscreen\'] == \'1\') {
echo(\'<input type="hidden" name="fullscreen" value="1" />\');
}
所以如果你访问/wp-admin/post.php?post=100&action=edit&fullscreen=1
, 最后一个参数将在保存表单后出现。两个都试过了,但似乎都不起作用,我是不是错过了什么?add_action(\'admin_footer\', \'jupload_scripts\'); wp_register_script(\'jquery-ui\', \'http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.12/jquery-ui.min.js\', array(\'jquery\'), \'1.8.6\'); wp_enqueue_script( \'j