WP笔记

打造自己的WordPress Dashboard仪表盘

WordPress的仪表盘(Dashboard),也就是登陆后台后第一个看见的页面,有人说这个界面很累赘,显示了很多没人感兴趣的信息,耗费内存,例如WordPress China博客新闻(如果你装的是中文版)、其它WordPress新闻等Widget。没关系,WordPress的设计者给我们提供了多种方式来打造自己的个性化WordPress仪表盘

仪表盘Widget的基本设定

点击屏幕右上角的显示选项,可以通过勾选显示或隐藏仪表盘的widget。

WordPress Dashboard仪表盘定制

隐藏后台Widget

隐藏不等于没有,例如选择站点健康状态,这个Widget从屏幕上消失了,如果你查看源代码,会发现这个东西还是存在的,只是css的display属性设置为none。

想真正隐藏仪表盘widget,提升网站性能,需要用代码。将下面的代码放到子主题的functions.php中。

function sola_remove_dashboard_widgets() {
  global $wp_meta_boxes;

  unset($wp_meta_boxes['dashboard']['side']['core']['dashboard_quick_press']);  //快速草稿
  unset($wp_meta_boxes['dashboard']['side']['core']['dashboard_primary']);  //WordPress活动及新闻
 
  unset($wp_meta_boxes['dashboard']['normal']['core']['dashboard_site_health']);//站点健康状态
  unset($wp_meta_boxes['dashboard']['normal']['core']['dashboard_right_now']);   //概览
  unset($wp_meta_boxes['dashboard']['normal']['core']['dashboard_activity']);   //动态

}
add_action('wp_dashboard_setup', 'sola_remove_dashboard_widgets' );

每一行unset()都是移除一个Widget,具体是什么看代码后面的注释,也可以参考下面的图片说明,每个Widget的ID在代码中的位置如下所示

unset($wp_meta_boxes[‘dashboard’][‘side’][‘core’][‘widget ID‘]);

重排Widgets

拖拽,或者点击上下箭头,都可以重新排序。

重排Widgets

添加自定义后台Widget

在子主题的functions.php中加入注册Widget的代码,主要用到了wp_add_dashboard_widget钩子,代码如下:

//注册新的Widget
function sola_add_dashboard_widgets() {
  wp_add_dashboard_widget('example_dashboard_widget', 'Example Dashboard Widget', 'sola_dashboard_widget_content');
}

add_action('wp_dashboard_setup', 'sola_add_dashboard_widgets' );


// 输出你想显示的内容
function sola_dashboard_widget_content() {
  // 显示任何你想显示的内容
  echo "Hello World, I'm a great Dashboard Widget";
} 
添加自定义后台Widget

扩展阅读

定制化WordPress后台的6个技巧

Wordpress Dashboard Widgets API

10条评论

  1. 请教一下如何自定义一个像welcome那样的宽栏的Dashboard widget,添加的自定义后台Widget都是1/3栏的?

    1. welcome并非dashboard widget,是自定义内容。
      welcome通过下面这个widget输出
      add_action( ‘welcome_panel’, ‘wp_welcome_panel’ );

      函数wp_welcome_panel位于wp-admin/includes/dashboard.php,定义welcome面板输出的内容
      action welcome_panel位于wp-admin/index.php第120行,定义了welcome面板输出的位置

      你可以简单看下源代码,再想想自己的需求可不可以这样实现。

      1. 这么回事,如果建立一个dashboard widget,有没有办法直接建成宽栏的或者自定义宽度的,除了去添加额外的css?

    1. 代码本来就是英文的,你见过中文的代码么,直接把代码拷贝进去试试就知道是干啥的了,还有我这篇文章更新了,上面有添加帮助信息的方法,至于显示选项,不同页面修改方法不完全一样,没法说。。

  2. 最后1个小问题 因为你是高手 所以指引着我们 登录后 不是最下角 有3.4.2的版本号吗?怎么样在functions.php中删除或者修改这个版本号呀?

    1. 没研究过怎么修改,感觉没必要。要隐藏的话用css display属性就可以了,在functions.php加下面的代码打印一段css出来

      add_action("admin_print_styles", "admin_style");
      function admin_style(){
      	echo "<style type='text/css'>
      	#footer-upgrade{display:none}
      	</style>";
      }
      
    1. 添加help信息使用add_help_tab函数

      修改默认help信息参考http://wp.tutsplus.com/articles/12-useful-customization-and-branding-tweaks-for-the-wordpress-dashboard/

      修改显示选项参考http://wordpress.stackexchange.com/questions/56606/how-to-remove-certain-screen-options-and-meta-boxes-from-add-edit-post-type

      显示选项与help信息职责不同,链接应该添加到help中,显示选项是用来控制meta box的

  3. 如何在functions.php 文件中修改你提到的登录后右上角的 “显示选项”和“帮助” 其中的内容,比如删除里面内容 加个超链接,打个比方

评论已关闭。