禁用插件页面上的管理栏呈现

时间:2015-05-01 作者:visevo

在WP管理面板中,我有一个插件,可以根据表单的输入进行某些计算。我需要它打印漂亮,所以我试图呈现没有管理菜单等插件页面。

我以为remove_action( \'wp_footer\', \'wp_admin_bar_render\', 10000 ); 将实现这一点,但它似乎不起作用,因为它仍然呈现管理面板,而不仅仅是一个空白的白色页面。

以下是我所拥有的:

public function cpui_setup()
{
    add_submenu_page( NULL, __( \'WooCommerce Print Order Recipe\', \'woocommerce\' ),  __( \'Print Recipe\', \'woocommerce\' ) , \'manage_woocommerce\', \'cpui_print_recipe\', array( $this, \'print_recipe_page\' ) );
}

public function print_recipe_page()
{
    remove_action( \'wp_footer\', \'wp_admin_bar_render\', 1000 );
    require_once( \'admin/print_recipe.php\' );
}
...
我忽略了什么?

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

在现代WordPress中,工具栏被认为是管理的一部分。也就是说,WordPress对于不让您禁用它显然是固执己见的。虽然你仍然可以解决它,但这是不必要的斗争。

如果你需要一个空白页面,没有理由为它的空白管理界面而挣扎。你可以简单地使用wp-admin/admin-post.php 处理您的表单。Ajax端点也可以正常工作,甚至可以自定义“漂亮”URL端点。

SO网友:bueltge

如果要为此页面上的所有用户禁用管理栏,请使用

wp_deregister_script( \'admin-bar\' );
        wp_deregister_style( \'admin-bar\' );
        remove_action( \'init\', \'_wp_admin_bar_init\' );  
    remove_action( \'wp_footer\', \'wp_admin_bar_render\', 1000 );  
    remove_action( \'admin_footer\', \'wp_admin_bar_render\', 1000 ); 
在函数中,检查插件页面,如get_current_sreen(). 这个codex 掌握所有信息和示例。

结束