首頁  >  文章  >  後端開發  >  在 WordPress 3.3 中停用管理列:逐步指南

在 WordPress 3.3 中停用管理列:逐步指南

王林
王林原創
2023-08-30 17:53:061195瀏覽

WordPress (Sonny) 3.3 版於昨晚剛發布。半夢半醒中,我下載了新版本,設定了資料庫,然後安裝了它。新穎的歡迎方式,我喜歡。然後,我按照我喜歡的方式配置了我的設定。修復標語,設定永久連結(看,%postname%,太棒了,太棒了),設定日期和時間格式等等。然後我禁用了管理列。點擊“更新個人資料”。偉大的!嘿,等一下。管理欄還在嗎! ?什麼[插入髒話]!


# 為什麼我無法擺脫管理列?

在新的 WordPress 版本中,WordPress 核心開發人員決定管理列是管理部分的重要組成部分(據我了解)。個人覺得沒啥太大用處。對我來說,它只是頁面頂部的一個醜陋的欄,只有一些在側邊選單上找到的選項。不是,我對管理欄有無法忍受的仇恨。我只是不喜歡它。

使用先前版本的 WordPress,您只需前往使用者設定檔即可停用管理欄,或者您可以在 functions.php 檔案中使用此流行程式碼。

add_filter('show_admin_bar', '__return_false');

隨著版本 3.3 的發布,我們不再提供在管理部分禁用管理列的選項。我讚揚 WordPress 核心開發團隊試圖讓 WordPress 更易於使用和訪問,但他們的想法似乎遺漏了一些東西。人們喜歡有選擇,但他們不喜歡這些選擇被剝奪。尤其是當他們使用了這些選項時。

因此,我很快就想出了這個解決方案來停用管理列。


停用管理部分中的管理列

此程式碼將放置在 functions.php 檔案中,因此請繼續在您喜歡的文字編輯器中開啟它。

首先讓我們透過檢查來設定該函數。


if (!function_exists('disableAdminBar')) {

	function disableAdminBar(){
  
  }

}

這將確保函數“disableAdminBar”尚不存在。如果沒有,我們的函數將運行。

接下來,讓我們刪除啟用管理欄的操作。


if (!function_exists('disableAdminBar')) {

	function disableAdminBar(){
  
  	remove_action( 'admin_footer', 'wp_admin_bar_render', 1000 );
  
  }

}

現在,對於初始化disableAdminBar函數的動作鉤子。


if (!function_exists('disableAdminBar')) {

	function disableAdminBar(){
  
  	remove_action( 'admin_footer', 'wp_admin_bar_render', 1000 );
  
  }

}

add_filter('admin_head','remove_admin_bar_style_backend');

好的,這禁用了管理欄,但頁面頂部仍然有 28 像素的填充。

在 WordPress 3.3 中禁用管理栏:分步指南

# 您可以進入 admin-bar.css 檔案並編輯其中的 css 以刪除填充。您要編輯的 css 屬性是這樣的。

body.admin-bar #wpcontent,
body.admin-bar #adminmenu{
padding-top:28px;
}

您可以深入研究 wp-admin.css 檔案並更改其中的 css,但我認為最好保留核心檔案。因此,我將重寫我們剛剛建立的函數中的 css。這是我們將用來覆蓋 css 的函數。

function remove_admin_bar_style_backend() { 
  echo '<style>body.admin-bar #wpcontent, body.admin-bar #adminmenu { padding-top: 0px !important; }</style>';
}
      
add_filter('admin_head','remove_admin_bar_style_backend');

這是禁用管理欄並覆蓋 css 的完整函數。


if (!function_exists('disableAdminBar')) {

	function disableAdminBar(){
  
  	remove_action( 'admin_footer', 'wp_admin_bar_render', 1000 );
  
    function remove_admin_bar_style_backend() { 
      echo '<style>body.admin-bar #wpcontent, body.admin-bar #adminmenu { padding-top: 0px !important; }</style>';
    }
          
    add_filter('admin_head','remove_admin_bar_style_backend');
  
  }

}

add_filter('admin_head','remove_admin_bar_style_backend');

現在 28px 內邊距應該消失了。

在 WordPress 3.3 中禁用管理栏:分步指南

# 它不漂亮,但它可以工作,也可以通過這種方式覆蓋 css。如果您想重新啟用管理列。您不必將核心 CSS 改回來。


停用管理部分中的管理列

如果您想要停用網站前端的管理欄,您可以進入您的使用者個人資料並取消選取「檢視網站時顯示工具列」。很簡單,但如果您想一起停用管理欄,我們將不得不在「disableAdminBar」功能中添加更多內容。

這是禁用前端管理列的操作。

	remove_action( 'wp_footer', 'wp_admin_bar_render', 1000 );

在我們的“disableAdminBar”函數中。看起來像這樣。


if (!function_exists('disableAdminBar')) {

	function disableAdminBar(){
  
    remove_action( 'admin_footer', 'wp_admin_bar_render', 1000 ); // for the admin page
    remove_action( 'wp_footer', 'wp_admin_bar_render', 1000 ); // for the front end
  
    function remove_admin_bar_style_backend() { 
      echo '<style>body.admin-bar #wpcontent, body.admin-bar #adminmenu { padding-top: 0px !important; }</style>';
    }
          
    add_filter('admin_head','remove_admin_bar_style_backend');
    
	}

}

add_filter('admin_head','remove_admin_bar_style_backend');

管理欄消失了,但有一個問題。現在,您的網站頂部有 28 像素的邊距。

在 WordPress 3.3 中禁用管理栏:分步指南

# 這一點很棘手。當勾選「檢視網站時顯示工具列」時,此 css 會硬編碼在

中。我無法弄清楚如何刪除 CSS,因此我們必須像使用此函數的管理部分一樣覆寫它。
function remove_admin_bar_style_frontend() { 
  echo '<style type="text/css" media="screen">
  html { margin-top: 0px !important; }
  * html body { margin-top: 0px !important; }
  </style>';
}

add_filter('wp_head','remove_admin_bar_style_frontend', 99);

add_filter鉤子末尾的99是為了確保

中的css位於中原始硬編碼的css之後

在 WordPress 3.3 中禁用管理栏:分步指南

# 這是我們完成的函數。


if (!function_exists('disableAdminBar')) {

	function disableAdminBar(){
  
  	remove_action( 'admin_footer', 'wp_admin_bar_render', 1000 ); // for the admin page
    remove_action( 'wp_footer', 'wp_admin_bar_render', 1000 ); // for the front end
  
    function remove_admin_bar_style_backend() {  // css override for the admin page
      echo '<style>body.admin-bar #wpcontent, body.admin-bar #adminmenu { padding-top: 0px !important; }</style>';
    }
          
    add_filter('admin_head','remove_admin_bar_style_backend');
    
    function remove_admin_bar_style_frontend() { // css override for the frontend
      echo '<style type="text/css" media="screen">
      html { margin-top: 0px !important; }
      * html body { margin-top: 0px !important; }
      </style>';
    }
    
    add_filter('wp_head','remove_admin_bar_style_frontend', 99);
  
  }

}

// add_filter('admin_head','remove_admin_bar_style_backend'); // Original version
add_action(‘init’,'disableAdminBar’); // New version

結論

這可能不是最有說服力的解決方案,但目前它可以作為快速解決方案。我迫不及待地想看看即將推出的其他解決方案和 WordPress 技巧。

好吧,WordPress 3.3 版(又名 Sonny)終於來了。如果您尚未升級,請立即升級。

#

以上是在 WordPress 3.3 中停用管理列:逐步指南的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
上一篇:PHP比較對象下一篇:PHP比較對象