2014-10-30 80 views
0

我正在寻找一种编程方式来隐藏顶部工具栏,该工具栏显示WordPress中已登录的用户。在WordPress中隐藏工具栏,包括后端,包括管理员

我尝试了一些东西,我在不同的网站上找到,但毫无效果,如:

show_admin_bar(false); 

add_filter('show_admin_bar', '__return_false'); 

请注意,我想删除前部和后端工具栏,包括管理员。

感谢您的任何建议!

注意:我使用wordpress 4.0

+0

用户>您的配置文件> Untick“查看网站时显示工具栏”作为前端时,为什么管理员需要这样做?它有相当重要的按钮。 – ggdx 2014-10-30 16:19:21

+0

我正在研究一个相当复杂的插件,它将修改管理后端,重新构建它的菜单,工具栏等。这可能是一个非常特殊的需求,但它对于我的插件删除此工具栏非常重要。 – ibi0tux 2014-10-30 16:24:48

回答

1

我会建议使用CSS隐藏。您可以使用过滤器来隐藏常规用户的管理栏,但您需要为管理员使用CSS。

#wpadminbar { 
display:none; 
} 

.logged-in #wpadminbar { 
    display: none; 
} 
+0

钩子'wp_before_admin_bar_render' /'wp_after_admin_bar_render'可让您捕获输出缓冲区。尽管如此,仍然需要一些CSS来清理管理员。 – doublesharp 2014-10-30 17:19:26

+0

谢谢@aibrean您的解决方案,它也能正常工作! – ibi0tux 2014-10-30 17:31:47

1

您可以使用动作钩子wp_before_admin_bar_renderwp_after_admin_bar_render触发和最终捕获它的输出缓冲器,因为你不使用它可以只是被弃如敝屣。 PHP函数ob_start()ob_get_clean()可用于此目的。请注意,管理员的CSS会留下一个空白的地方,使用自定义CSS进行调整。

if (is_admin()){ 
    add_action('wp_before_admin_bar_render', function(){ ob_start(); }); 
    add_action('wp_after_admin_bar_render', function(){ ob_get_clean(); }); 
} else { 
    show_admin_bar(false); 
    add_filter('show_admin_bar', '__return_false'); 
} 
+0

这工作正常。我喜欢这个使用缓冲区的'棘手'解决方案。你说的对,在这两种情况下(使用缓冲区或CSS),我需要在CSS之后重新调整内容。 – ibi0tux 2014-10-30 17:22:04