11 個用于定制WordPress管理儀表盤的代碼片段

jopen 12年前發布 | 20K 次閱讀 WordPress

Remove items from your WordPress Dashboard’s Menu

// removing appearance, users and plugins options from menu Items in WordPress Dashboard
function wp_admin_dashboard_remove_menus() {
    global $menu;
    $restricted = array(__('Appearance'), __('Users'), __('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', 'wp_admin_dashboard_remove_menus');

 

List all Dashboard Widgets Within the Dashboard Itself

function list_active_dashboard_widgets() {
    global $wp_meta_boxes;
    foreach (array_keys($wp_meta_boxes['dashboard']['normal']['core']) as $name) {
    echo '<div>' . $name . '</div>';
    }
}
add_action('wp_dashboard_setup', 'list_active_dashboard_widgets');

 

Editing the Footer Text in your Dashboard

function remove_footer_admin () {
    echo "Your own text";
}
add_filter('admin_footer_text', 'remove_footer_admin');

 

Changing the Colour of WordPress Dashboard’s Header

// Editing the WordPress Dashboard Header
function wp_admin_dashboard_header_colour() {
echo '<style type="text/css">#wphead{background:#000000;
background-image: -webkit-gradient(linear, 0% 100%, 0% 0%, from(#7684hg), to(#730fvk));
}

wphead h1#site-heading a{color: #ggg;}

wphead h1#site-heading a:hover{color: #fff;}

wphead #wphead-info #user_info{color: #ggg;}

wphead #wphead-info #user_info a{color: #ggg;}

wphead #wphead-info #user_info a:hover{color: #fff;}

</style>'; } add_action('admin_head', 'wp_admin_dashboard_header_colour');</pre>

 

Adding a Custom Widget in Your WordPress Dashboard

add_action('wp_dashboard_setup', 'custom_dashboard_widgets');
function custom_dashboard_widgets() {
    global $wp_meta_boxes;
    wp_add_dashboard_widget('custom_ad_widget', 'MyAds', 'custom_dashboard_ad');
}

function custom_dashboard_ad() { echo '<p> Here is my widget.</p><br /> And one more line'; }</pre>

 

Error Logging in WordPress Dashboard

function slt_PHPErrorsWidget() {
    $logfile = '<root>/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' );</pre>

 

Removing the Logo From the Dashboard

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/logo.jpg) !important; }</style>';

}</pre>

 

Add a Custom News Feed to the WordPress Dashboard

// A news feed widget for your WordPress dashboard
function wp_admin_dashboard_add_news_feed_widget() {
    global $wp_meta_boxes;
    // The new widget
    wp_add_dashboard_widget( 'dashboard_new_feed', 'News of Your Choice', 'dashboard_my_feed_output' );
}
add_action('wp_dashboard_setup', 'wp_admin_dashboard_add_news_feed_widget');
function dashboard_my_feed_output() {
    echo '<div>';
    wp_widget_rss_output(array(
        'url' => 'http://www.mywebsite.com/feed/',
        'title' => 'Latest news of my choice',
        'items' => 2,
        'show_summary' => 1,
        'show_author' => 0,
        'show_date' => 1
));
echo "</div>";
}

 

Removing the WordPress Logo from the Login Page

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

 

Disable Non-Default Dashboard Widgets

function disable_default_dashboard_widgets() {
    remove_meta_box('widget-name', 'dashboard', 'normal');
}
add_action('admin_menu', 'disable_default_dashboard_widgets');

 

Remove the Upgrade WordPress Banner for Non-Admin Users

// Removing the "Please Update Now" notice for non-admin users
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;" ) );
    add_filter( 'pre_site_transient_update_core', create_function( '$a', "return null;" ) ); 
}

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!