卓越飞翔博客卓越飞翔博客

卓越飞翔 - 您值得收藏的技术分享站
技术文章64334本站已运行4115

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

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)终于来了。如果您尚未升级,请立即升级。

卓越飞翔博客
上一篇: php选择结构语句有哪些
下一篇: 最小的子串需要被删除才能使给定的字符串成为回文
留言与评论(共有 0 条评论)
   
验证码:
隐藏边栏