我终于想出了这个办法。事实证明,我太专注于过滤器和操作了,以至于忘记了基础知识。
要在保存帖子(通过提交表单)后保留任何自定义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
, 最后一个参数将在保存表单后出现。