zoukankan      html  css  js  c++  java
  • 黄聪:定制化WordPress后台自定义仪表盘

    WordPress作为一博客管理系统,相对来说已经相当简洁了,对用户也十分友好,新手也极易上手。

    仪表盘是我们登陆WordPress后看到的后台界面,映入眼帘的是各种各样的信息,如WordPress China博客消息,及其他关于WordPress的RSS信息,这些无用的东西空空的耗费着我们内存。通过定制WordPress的管理后台,我们可以让WordPress更加简单实用,易于管理。简化后台界面,去除冗余信息和代码。

    WordPress内置的hooks(包括filter和action)为我们定制WordPress后台提供了完美的解决方案。通过“勾入”而非修改WordPress的核心程序,可以在不影响安装文件完整性的情况下安全地作改动。

    下面介绍的代码将全部在主题模板函数functions.php文件里修改。

    WordPress后台定制

    WordPress后台定制

    去除控制台Widgets


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

    增加控制台Widget


    //Add dashboard widgets
    if ( ! function_exists( 'add_dashboard_widgets' ) ) :
    function welcome_dashboard_widget_function() {
    echo "<ul><li><a href='post-new.php'>发布内容</a></li><li><a href='edit.php'>修改内容</a></li></ul>";
    }
    function add_dashboard_widgets() {
    wp_add_dashboard_widget('welcome_dashboard_widget', '常规任务', 'welcome_dashboard_widget_function');
    }
    add_action('wp_dashboard_setup', 'add_dashboard_widgets' );
    endif;

    去除小工具Widgets


    //Disable Standard Widgets
    function remove_some_wp_widgets(){
      unregister_widget('WP_Widget_Pages');
      unregister_widget('WP_Widget_Calendar');
      unregister_widget('WP_Widget_Archives');
      unregister_widget('WP_Widget_Links');
      unregister_widget('WP_Widget_Meta');
      unregister_widget('WP_Widget_Search');
      unregister_widget('WP_Widget_Text');
      unregister_widget('WP_Widget_Categories');
      unregister_widget('WP_Widget_Recent_Posts');
      unregister_widget('WP_Widget_Recent_Comments');
      unregister_widget('WP_Widget_RSS');
      unregister_widget('WP_Widget_Tag_Cloud');
    }
    add_action('widgets_init',remove_some_wp_widgets', 1);

    删除顶级菜单


    //remove menus
    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)]);}
        }
    }
    if ( is_admin() ) {
        add_action('admin_menu', 'remove_menus');
    }

    删除子菜单


    //remove submenus
    function remove_submenus() {
      global $submenu;
      unset($submenu['index.php'][10]); // Removes 'Updates'.
      unset($submenu['themes.php'][5]); // Removes 'Themes'.
      unset($submenu['options-general.php'][15]); // Removes 'Writing'.
      unset($submenu['options-general.php'][25]); // Removes 'Discussion'.
      unset($submenu['edit.php'][16]); // Removes 'Tags'. 
    }
    add_action('admin_menu', 'remove_submenus');

    根据角色设定菜单可见性


    //remove role menus
    function remove_menus() {
        global $menu;
        // 这里$restricted设置了评论和工具菜单
        $restricted = array(__('Comments'), __('Tools'));
        end ($menu);
        while (prev($menu)){
            $value = explode(' ',$menu[key($menu)][0]);
            if(in_array($value[0] != NULL?$value[0]:"" , $restricted)){unset($menu[key($menu)]);}
        }
    }
    function remove_submenu() {
        remove_submenu_page( 'options-general.php', 'options-privacy.php' );
    }
    global $current_user;
    get_currentuserinfo();
    //如果当前用户的等级小于3,那么就删除对应的菜单
    if ($current_user->user_level < 3 && is_admin()) {
        add_action('admin_menu', 'remove_menus');
        add_action('admin_init','remove_submenu');
    }

    0 级对应 订阅者 1 级对应 投稿者 2 – 4 级对应 作者 5 – 7 级对应 编辑 8 – 10 级对应 管理员

    修改后台LOGO图标


    //custom admin logo
    function custom_logo() {
      echo '<style type="text/css">
        #header-logo { background-image: url('.get_bloginfo('template_directory').'/images/admin_logo.png) !important; }
        </style>';
    }
    add_action('admin_head', 'custom_logo');

    修改登录页面LOGO


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

    隐藏版本更新


    //Hide the Upgrade Notice to Recent Versions
    add_filter( 'pre_site_transient_update_core', create_function( '$a', "return null;" ) );

    修改页脚信息


    //Customize the Footer
    function modify_footer_admin () {
      echo 'Created by <a href="http://wiinder.com">wiinder</a>.';
      echo 'Powered by<a href="http://WordPress.org">WordPress</a>.';
    }
    add_filter('admin_footer_text', 'modify_footer_admin');

    去除编辑页面媒体上传按钮


    //remove all media buttons
    add_action('admin_init', 'remove_all_media_buttons');
    function remove_all_media_buttons()
    {
        remove_all_actions('media_buttons');
    }

    完整删除WP版本号


    //完整的删除WordPress的版本号
    function wpbeginner_remove_version() {
    return '';
    }
    add_filter('the_generator', 'wpbeginner_remove_version');

    隐藏帮助按钮和版本更新


    //隐藏管理后台帮助按钮和版本更新提示
    function hide_help() {
    	echo'<style type="text/css">#contextual-help-link-wrap { display: none !important; } .update-nag{ display: none !important; } #footer-left, #footer-upgrade{ display: none !important; }#wp-admin-bar-wp-logo{display: none !important;}.default-header img{400px;}</style>';
    }
    add_action('admin_head', 'hide_help');

    去除header冗余代码


    //去除header冗余代码
    remove_action('wp_head', 'feed_links_extra', 3);
    remove_action('wp_head', 'rsd_link');
    remove_action('wp_head', 'wlwmanifest_link');
    remove_action('wp_head', 'index_rel_link');
    remove_action('wp_head', 'start_post_rel_link', 10, 0);
    remove_action('wp_head', 'wp_generator');
     
  • 相关阅读:
    增加一个基类没有的方法
    修改或加强基类的属性
    linux rm命令详解
    Apache的配置httpd.conf杂谈
    解决 You don't have permission to access / on this server. 错误的另一方法
    ubuntu下成功配置LAMP 并安装PHPMyadmin
    C#连接SQLite的方法
    内存使用大比拼 之 String – StringBuffer
    非常喜欢Gedit,绝不逊色EditPlus!
    关于内存
  • 原文地址:https://www.cnblogs.com/huangcong/p/3546636.html
Copyright © 2011-2022 走看看