首页 >后端开发 >php教程 >在 WordPress 3.3 中禁用管理栏:分步指南

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

王林
王林原创
2023-08-30 17:53:061207浏览

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