WP笔记

定制化WordPress后台的6个技巧

WordPress后台并非千篇一律,你可以通过一些代码定制化一个你喜欢的后台,本文所述代码都应写在主题的functions.php中。

移除后台某些菜单

如果你不想客户因为点了错误的菜单选项而删除付费主题,或者搞乱后台的设置,那么把你不希望他们看到的菜单隐藏吧。将你想移除的菜单天道$restricted数组中即可

function remove_menus () {
global $menu;
		$restricted = array(__('Dashboard'), __('Posts'), __('Media'), __('Links'), __('Pages'), __('Appearance'), __('Tools'), __('Users'), __('Settings'), __('Comments'), __('Plugins'));
		end ($menu);
		while (prev($menu)){
			$value = explode(' ',$menu[key($menu)][0]);
			if(in_array($value[0] != NULL?$value[0]:"" , $restricted)){unset($menu[key($menu)]);}
		}
}
add_action('admin_menu', 'remove_menus');

更换登陆/注册页面的Logo

function my_custom_login_logo() {
    echo '
<style type="text/css">
        .login h1 a { background-image:url('.get_bloginfo('template_directory').'/images/custom-login-logo.gif) !important; }
    </style>
 
';
}
 
add_action('login_head', 'my_custom_login_logo');

更换Dashboard(仪表盘)的Logo

add_action('admin_head', 'my_custom_logo');
 
function my_custom_logo() {
   echo '
   <style type="text/css">
   #wp-admin-bar-wp-logo > .ab-item .ab-icon  
    { background-image: url('.get_bloginfo('template_directory').'/images/custom-logo.gif) !important; }
   </style>';
}

删除“Please Upgrade Now”升级提示

# 2.3 to 2.7:
add_action( 'init', create_function( '$a', "remove_action( 'init', 'wp_version_check' );" ), 2 );
add_filter( 'pre_option_update_core', create_function( '$a', "return null;" ) );

# 2.8 to 3.0:
remove_action( 'wp_version_check', 'wp_version_check' );
remove_action( 'admin_init', '_maybe_update_core' );
add_filter( 'pre_transient_update_core', create_function( '$a', "return null;" ) );

# 3.0:
add_filter( 'pre_site_transient_update_core', create_function( '$a', "return null;" ) );

你也可以直接安装插件Disable WordPress Core Updates,隐藏升级通知在某些时候很有用,比如你要在低版本的wp上测试插件,或者你不想让你的客户被升级通知困扰。

删除Dashboard的Widget

如果你不想整天读WordPress官方的新闻,不想看见Dashboard到处是盒子,用下面的代码移除。虽然WordPress的屏幕选项也能实现差不多的效果,但从屏幕选项里去掉选择只不过是隐藏了这些widget,东西都在,只是你看不见罢了。用代码则可以禁止这些widget加载。

function remove_dashboard_widgets() {
	global $wp_meta_boxes;
 
	unset($wp_meta_boxes['dashboard']['side']['core']['dashboard_quick_press']);
	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_drafts']);
	unset($wp_meta_boxes['dashboard']['normal']['core']['dashboard_recent_comments']);
	unset($wp_meta_boxes['dashboard']['side']['core']['dashboard_primary']);
	unset($wp_meta_boxes['dashboard']['side']['core']['dashboard_secondary']);
 
}
add_action('wp_dashboard_setup', 'remove_dashboard_widgets' );

创建自己的Dashboard Widget

function example_dashboard_widget_function() {
	// Display whatever it is you want to show
	echo "Hello World, I'm a great Dashboard Widget";
} 
 
// Create the function use in the action hook
function example_add_dashboard_widgets() {
	wp_add_dashboard_widget('example_dashboard_widget', 'Example Dashboard Widget', 'example_dashboard_widget_function');
}
// Hoook into the 'wp_dashboard_setup' action to register our other functions
add_action('wp_dashboard_setup', 'example_add_dashboard_widgets' );

结束语

WordPress定制化很强,你可以有一个琳琅满目的后台,里面都是你需要和喜欢的东西;也许你想要一个简单加载速度快的后台,那么移除所有不需要的widget,删除所有没用的插件、主题。自由度大不是累赘,关键看如何使用。

8条评论

  1. 如果你不想客户因为点了错误的菜单选项而删除付费主题,或者搞乱后台的设置,那么把你不希望他们看到的菜单隐藏吧。将你想移除的菜单天道$restricted数组中即可

    ”天道“应该为”添到”

    1. 用poedit编辑一下wp-content/languages/zh_CN.po即可,在该文件中搜索Dashboard对应的翻译,修改后重新生成mo文件

    1. 确保logo的路径正确,且logo图片确实存在,名字正确。还没有,就firebug看一下是不是样式根本没加进去,如果这几样都没问题还不工作,那就是见鬼了

  2. Pingback: 打造自己的WordPress Dashboard仪表盘 | WordPress教程 | ~SolagirL~
    1. 内存占用率我没试过,禁止后台widget至少可以避免读取外部rss,至于查询数据库的代码是不是还要执行我还没研究

评论已关闭。