今天开始研究如何调整网站的wp后台页面,初步认知了wordpress后台首页如何添加新的挂件,并且删除掉不需要的默认模块。
其实在多数情况下,当我们登陆wordpress的后台时会显示一些插件、博客消息、评论、订阅等信息模块。多数情况下我们并不需要看到这些信息,而且在读取这些信息时会减慢后台的运行速度。因此我们可以通过自定义后台挂件删除一些不需要的模块,添加一些自定义内容的属性到后台首页中来。
一、移除不需要的挂件
将下面的代码插入到当前模板根目录的function.php文件的最下面,可以移除插件、链接、官方公告等信息。
1 2 3 4 5 6 7
| function remove_dashboard_widgets(){ global$wp_meta_boxes; unset($wp_meta_boxes['dashboard']['normal']['core']['dashboard_plugins']); unset($wp_meta_boxes['dashboard']['side']['core']['dashboard_primary']); unset($wp_meta_boxes['dashboard']['normal']['core']['dashboard_incoming_links']); unset($wp_meta_boxes['dashboard']['side']['core']['dashboard_secondary']); }
|
add_action(‘wp_dashboard_setup’, ‘remove_dashboard_widgets’);
如果需要移除其他模块,可以使用unset($wp_meta_boxes[‘dashboard’][‘normal’][‘core’][‘需要移除的模块id’]); 函数中标红的部分就是你需要移除模块的id。
使用add_action(‘wp_dashboard_setup’, ‘remove_dashboard_widgets’);执行挂在动作,将通过调用回调函数remove_dashboard_widgets移除不必要的模块
二、增加自定义挂件
移除掉不必要的挂件后,我们也可以添加自己需要的挂件。具体挂件需要挂载什么内容,可以按照自己的需求进行开发。下面代码演示一个基本的加载文本公告的一个挂件方式。
挂载自定义控件主要使用wp_add_dashboard_widget函数。该函数的使用方法为:
1 2 3 4 5 6
| wp_add_dashboard_widget( $widget_id,//挂件的ID $widget_name, //显示名称 $callback, //内容回调函数 $control_callback//控制函数回调 )
|
通过函数的说明,应该可以很清楚的了解这个函数的具体使用方法了,下面给出一个完整的实例演示代码,该示例可以实现后台挂载一个简单的文本输出挂件。代码如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| // 设置挂载空间中的输出内容
function example_dashboard_widget_function() { // Display whatever it is you want to show echo "演示的内容"; }
// 添加挂件
function example_add_dashboard_widgets() { wp_add_dashboard_widget('example_dashboard_widget', '示例挂件', 'example_dashboard_widget_function'); }
add_action('wp_dashboard_setup', 'example_add_dashboard_widgets' ); // 挂载example_dashboard_widget
|
为了进一步的开拓思维,给出一个更加复杂的代码示例。显示今年的文章数与评论数功能,代码如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66
| if (is_admin()){ $this_year = date(Y); $next_year = $this_year + 1;
function ty_dashboard_widget() { $posts = ty_posts_counter(); $comments = ty_comments_counter(); echo <<<TYDW <p id="ty_dashboard_widget" style="font-family: 'Microsoft YaHei', STHeiti, sans-serif; font-size: 14px;"> <strong>今年发表文章:</strong>{$posts['publish']}篇公开文章,{$posts['private']}篇私人文章。<br /> <strong>今年收到留言:</strong>{$comments['comment']}条留言,{$comments['ping']}条Pingback/Trackback。 </p> TYDW; }
function ty_posts_counter() { global $table_prefix, $wpdb, $this_year, $next_year; $query = "SELECT COUNT( * ) as ty_posts FROM `{$table_prefix}posts` WHERE post_date >= '{$this_year}-01-01' AND post_date < '{$next_year}-01-01' AND post_type = 'post' AND post_status = 'publish'"; $posts['publish'] = $wpdb->get_results($query); $posts['publish'] = $posts['publish'][0]->ty_posts;
$query = "SELECT COUNT( * ) as ty_private_posts FROM `{$table_prefix}posts` WHERE post_date >= '{$this_year}-01-01' AND post_date < '{$next_year}-01-01' AND post_type = 'post' AND post_status = 'private'"; $posts['private'] = $wpdb->get_results($query); $posts['private'] = $posts['private'][0]->ty_private_posts; return $posts; }
function ty_comments_counter() { global $table_prefix, $wpdb, $this_year, $next_year; $query = "SELECT COUNT( * ) as comment_count FROM `wp_comments` WHERE comment_date >= '{$this_year}-01-01' AND comment_date < '{$next_year}-01-01' AND comment_type = '' AND comment_approved =1"; $comments['comment'] = $wpdb->get_results($query); $comments['comment'] = $comments['comment'][0]->comment_count;
$query = "SELECT COUNT( * ) as ping_count FROM `wp_comments` WHERE comment_date >= '{$this_year}-01-01' AND comment_date < '{$next_year}-01-01' AND comment_type != '' AND comment_approved =1"; $comments['ping'] = $wpdb->get_results($query); $comments['ping'] = $comments['ping'][0]->ping_count;
return $comments; }
function ty_dashboard_widget_setup() { wp_add_dashboard_widget( 'ty_dashboard_widget', '今年信息', 'ty_dashboard_widget' ); }
add_action('wp_dashboard_setup', 'ty_dashboard_widget_setup'); }
|