保存帖子后保留自定义URL参数

时间:2011-07-05 作者:Tomas Buteler

我正在为我的管理页面测试不同的布局,我发现确定加载哪个布局的最简单方法是使用URL参数。其中一个参数是“fullscreen=1”,例如,它隐藏了管理菜单。问题是,每当我通过提交表单来保存帖子/自定义帖子类型时,WordPress都会在不保留参数的情况下重定向我,从而通过添加回管理菜单来破坏我的布局。。。

有没有一种简单的方法来实现这一点?

1 个回复
最合适的回答,由SO网友:Tomas Buteler 整理而成

我终于想出了这个办法。事实证明,我太专注于过滤器和操作了,以至于忘记了基础知识。

要在保存帖子(通过提交表单)后保留任何自定义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, 最后一个参数将在保存表单后出现。

结束