控制面板是WordPress博客的重要组成部分。 登录WordPress后你首先看到的就是博客后台的控制板,你可以在这里管理你博客上的所有文章、版块布局以及其它各种条目。这里我们要介绍的是十个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
尽管登录logo对改善博客性能和可用性都没有多大帮助,但当你登录时看到的是一个不同于WordPress传统登录logo的logo时,心里总会有些异样的满足感吧。
Custom admin branding插件可以帮你实现这种效果,此外你也可以通过在functions.php文件里粘贴下面的代码来达到需要的效果。
function my_custom_login_logo() { echo '<style type="text/css"> h1 a { background-image:url('.get_bloginfo('template_directory').' /images/custom-login-logo.gif) !important; } </style>'; } add_action('login_head', 'my_custom_login_logo'); »来源
替换后台logo
既然已经重设了登录页面的logo,那么想不想也换换后台控制板上的logo呢?
同样只需要把下面的代码复制到functions.php文件。
add_action('admin_head', 'my_custom_logo'); function my_custom_logo() { echo '<style type="text/css"> #header-logo { background-image: url('.get_bloginfo('template_directory').' /images/custom-logo.gif) !important; }</style>'; } »来源
关闭“请升级”提醒
WordPress新版本发布得相当频繁。 如果你不想隔三差五地看到这样的提示,或者你是在为客户开发某个WordPress网站并认为客户不必看到升级提醒,那么请把下面的代码复制到functions.php文件。更新文件后WordPress的升级提醒就不会继续在你面前晃荡了。
if ( !current_user_can( 'edit_users' ) ) { add_action( 'init', create_function( '$a', "remove_action( 'init', 'wp_version_check' );" ), 2 ); add_filter( 'pre_option_update_core', create_function( '$a', "return null;" ) ); } »来源
删除控制面板widget
Widget是使WordPress功能得以扩展的一大功臣。尽管如此,有时候我们并不需要widget,至少并不需要其中一些widget。
在functions.php里加入下面的代码可以帮你删除控制面板的widget:
function example_remove_dashboard_widgets() { // Globalize the metaboxes array, this holds all the widgets for wp-admin global $wp_meta_boxes; // Remove the incomming links widget unset($wp_meta_boxes['dashboard']['normal']['core']['dashboard_incoming_links']); // Remove right now unset($wp_meta_boxes['dashboard']['normal']['core']['dashboard_right_now']); unset($wp_meta_boxes['dashboard']['side']['core']['dashboard_primary']); unset($wp_meta_boxes['dashboard']['side']['core']['dashboard_secondary']); } // Hoook into the 'wp_dashboard_setup' action to register our function add_action('wp_dashboard_setup', 'example_remove_dashboard_widgets' );
»来源
在控制面板里添加自定义widget
上面的方法说的是怎样删除控制板中不需要的widget, 而下面我们就来看看怎么创建新的widget。
下面的代码应该不难明白,同样只需要复制到functions.php文件里。 同样只需要复制到functions.php文件里。
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控制面板换色
在不修改WordPress核心文件的情况下,也可以改变WordPress控制面板的颜色甚至字体或者版式。
下面的代码实现了一次基本的样式更改(将原本的灰色header变成蓝色),只要你愿意,其它的更改同样不在话下(在<style>和</style>标签之间进行编辑)。
function custom_colors() { echo '<style type="text/css">#wphead{background:#069}</style>'; } add_action('admin_head', 'custom_colors');
提供帮助性信息
如果你是在帮助其他人开发WordPress网站,在控制面板的某些部分加上“帮助”说明必然是相当贴心的举动。
在functions.php文件里加上下面的代码, 让你的博客后台出现一些帮助说明类的温馨提示。
function my_admin_help($text, $screen) { // Check we're only on my Settings page if (strcmp($screen, MY_PAGEHOOK) == 0 ) { $text = 'Here is some very useful information to help you use this plugin...'; return $text; } // Let the default WP Dashboard help stuff through on other Admin pages return $text; } add_action( 'contextual_help', 'my_admin_help' ); »来源
在控制面板中监视服务器状况
WordPress的控制面板API大大加强了控制板widget的实用性。有这样一个强大的widget可以实现在WordPress控制面板中直接监视服务器运行状态的功能。
也只需要在functions.php文件里加入下面的代码:
function slt_PHPErrorsWidget() { $logfile = '/home/path/logs/php-errors.log'; // Enter the server path to your logs file here $displayErrorsLimit = 100; // The maximum number of errors to display in the widget $errorLengthLimit = 300; // The maximum number of characters to display for each error $fileCleared = false; $userCanClearLog = current_user_can( 'manage_options' ); // Clear file? if ( $userCanClearLog && isset( $_GET["slt-php-errors"] ) && $_GET["slt-php-errors"]=="clear" ) { $handle = fopen( $logfile, "w" ); fclose( $handle ); $fileCleared = true; } // Read file if ( file_exists( $logfile ) ) { $errors = file( $logfile ); $errors = array_reverse( $errors ); if ( $fileCleared ) echo '<p><em>File cleared.</em></p>'; if ( $errors ) { echo '<p>'.count( $errors ).' error'; if ( $errors != 1 ) echo 's'; echo '.'; if ( $userCanClearLog ) echo ' [ <b><a href="'.get_bloginfo("url").'/wp-admin/?slt-php-errors=clear" onclick="return confirm('Are you sure?');">CLEAR LOG FILE</a></b> ]'; echo '</p>'; echo '<div id="slt-php-errors" style="height:250px;overflow:scroll;padding:2px;background-color: #faf9f7;border:1px solid #ccc;">'; echo '<ol style="padding:0;margin:0;">'; $i = 0; foreach ( $errors as $error ) { echo '<li style="padding:2px 4px 6px;border-bottom:1px solid #ececec;">'; $errorOutput = preg_replace( '/[([^]]+)]/', '<b>[$1]</b>', $error, 1 ); if ( strlen( $errorOutput ) > $errorLengthLimit ) { echo substr( $errorOutput, 0, $errorLengthLimit ).' [...]'; } else { echo $errorOutput; } echo '</li>'; $i++; if ( $i > $displayErrorsLimit ) { echo '<li style="padding:2px;border-bottom:2px solid #ccc;"><em>More than '.$displayErrorsLimit.' errors in log...</em></li>'; break; } } echo '</ol></div>'; } else { echo '<p>No errors currently logged.</p>'; } } else { echo '<p><em>There was a problem reading the error log file.</em></p>'; } } // Add widgets function slt_dashboardWidgets() { wp_add_dashboard_widget( 'slt-php-errors', 'PHP errors', 'slt_PHPErrorsWidget' ); } add_action( 'wp_dashboard_setup', 'slt_dashboardWidgets' );
»来源
根据用户角色移除相应的widget
针对多用户博客。
下面的代码会将meta框postcustom从“作者”角色的控制板上删除。 同样你只需要在functions.php文件里加上下面的代码:
function customize_meta_boxes() { //retrieve current user info global $current_user; get_currentuserinfo(); //if current user level is less than 3, remove the postcustom meta box if ($current_user->user_level < 3) remove_meta_box('postcustom','post','normal'); } add_action('admin_init','customize_meta_boxes'); »来源
分类:新闻资讯