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

概述

1. 通过配置Widget选项修改后台显示的信息;

2. 通过程序移除不需要的Widget,添加自己喜欢的Widget。

配置后台Widget

就以“其他WordPress新闻Widget”为例,这个小工具其实是一个RSS阅读器,通过读取http://planet.wordpress.org的feed源向用户显示该网站最近更新的文章。说到这,答案很简单了。不想看这个新闻源,换一个就好。

鼠标移动到标题栏最右侧,会出现一个向下的箭头,箭头右侧有一个链接按钮”配置“。

点击箭头可以隐藏或者显示小工具的内容,点击配置就可以更改小工具的设置。

WordPress仪表盘小工具(Dashboard Widget)图解

修改“其它WordPress新”Widget的设置

将RSS地址更改成自己想订阅的网站,并输入新的标题,就可以和WordPress新闻说再见了。

配置其它WordPress新闻Widget

例如,我将地址修改为自己网站的rss地址:http://www.solagirl.net/feed

标题更改为:Sola博客

保存以后效果如下

在WordPress仪表盘显示Sola博客的订阅

用同样的方法定制其它Widget,你的后台就不在是WordPress的天下,而是你自己的空间。

隐藏后台Widget

如果想隐藏Widget,也很简单,有两种方法。

方法一:万能的显示选项(Screen Options)

不管在后台任何地方,如果你注意一下屏幕右上角,90%的概率你会发现一个东西叫做“屏幕选项(ScreeOptions)”。

显示选项
点击箭头打开显示选项,在仪表盘界面(登陆WordPress首先看到的界面),你将看到如下图所示的选项

通过WordPress仪表盘的显示选项显示/隐藏Widget

这里列出当前页面所有可用的Widget,无论是否显示,打上勾的就会显示出来,不打钩的就是隐藏的。

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

方法二:用程序隐藏Widget

正如方法一结尾所说,从屏幕选项中去除只是表面上隐藏了,还是会占用网速、内存。如果想彻底移除,就用程序来做。方法如下:

打开当前主题的functions.php,在文件末尾加上一段代码,这段代码用移除钩子的方式去掉widget

下面是代码

function 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 China 博客
	unset($wp_meta_boxes['dashboard']['side']['core']['dashboard_secondary']);	//其它WordPress新闻
	unset($wp_meta_boxes['dashboard']['side']['core']['dashboard_recent_drafts']);	//近期草稿
 
	unset($wp_meta_boxes['dashboard']['normal']['core']['dashboard_incoming_links']);//链入链接
	unset($wp_meta_boxes['dashboard']['normal']['core']['dashboard_right_now']);	 //概况
	unset($wp_meta_boxes['dashboard']['normal']['core']['dashboard_plugins']);	 //插件
	unset($wp_meta_boxes['dashboard']['normal']['core']['dashboard_recent_comments']);//近期评论
}
add_action('wp_dashboard_setup', 'remove_dashboard_widgets' );

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

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

Widget ID

Widget的HTML结构(通过Firebug获得)

WordPress仪表盘Widget的HTML结构

重排Widgets

后台的Widget和前台的一样,都可以通过拖拽的方式重新排列顺序。

添加自定义后台Widget

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

function example_dashboard_widget_function() {
	// 显示任何你想显示的内容
	echo "Hello World, I'm a great Dashboard Widget";
} 
 
// 创建钩子函数
function example_add_dashboard_widgets() {
	wp_add_dashboard_widget('example_dashboard_widget', 'Example Dashboard Widget', 'example_dashboard_widget_function');
}
// 将钩子函数挂到wp_dashboard_setup钩子上,注册新的Widget
add_action('wp_dashboard_setup', 'example_add_dashboard_widgets' );

添加帮助信息

在文章/页面的新建或编辑页面添加帮助信息(位于结尾)

add_action( 'admin_head-post.php', 'sola0922_add_help' );
add_action( 'admin_head-post-new.php', 'sola0922_add_help' );
function sola0922_add_help()
{
    get_current_screen()->add_help_tab( array(
        'id'        => 'my-help-tab',
        'title'     => __( 'My Title' ),
        'content'   => __( '<h5>Title</h5><p>This tab is below the built in tab.</p>' )
    ) );
}

添加新的帮助选项卡

在文章/页面的新建或编辑页面添加帮助信息(位于开头)

add_action('load-page-new.php','add_custom_help_page');  
add_action('load-page.php','add_custom_help_page');  
function add_custom_help_page() {  
   get_current_screen()->add_help_tab( array(
        'id'        => 'my-help-tab',
        'title'     => __( 'My Title' ),
        'content'   => __( '<h5>Title</h5><p>This tab is below the built in tab.</p>' )
    ) );
}

添加帮助信息

扩展阅读

定制化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?

  2. 你给的那个参考代码 全英文的啊 我真的是不想麻烦你 但我又没办法

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

  3. 最后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的

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

评论功能已关闭