2014-10-30 85 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