Take the 2-minute tour ×
WordPress Development Stack Exchange is a question and answer site for WordPress developers and administrators. It's 100% free, no registration required.

Is there a way to add a banner to the WP dashboard? I don't mean in a custom widget or anything, just a simple image banner.

share|improve this question
    
You'll have to add a widget and then add the img html string wrapped as meta box callback. –  kaiser May 23 '12 at 14:15

2 Answers 2

up vote 0 down vote accepted

Workaround using jQuery DOM insertion.
Note the use of PHP Heredoc sintax to print the script.

function wpse_53035_script_enqueuer(){
    echo <<<HTML
    <script type="text/javascript">
    jQuery(document).ready( function($) {
        $('<div style="width:100%;text-align:center;"><img src="http://cdn.sstatic.net/wordpress/img/logo.png?v=123"></div>').insertBefore('#welcome-panel');
    });     
    </script>
HTML;
}
add_action('admin_head-index.php', 'wpse_53035_script_enqueuer');

This inserts the new div at the top before #welcome-panel. If you use the div #dashboard-widgets-wrap it prints in the same position (after <h2>Dashboard</h2> and before the widgets).
The welcome panel is normally hidden, but I'm not sure of its general behavior. I guess this depends on your tests.


[edit]
As a matter of fact, just inspect the page and insert wherever you want.


[edit 2]
Playing with the code...
The following version does a fade-in of the widgets wrap. It also adds the width and height in the image tag, so other elements don't "jump" when the image finally loads.

function wpse_53035_script_enqueuer(){
    echo <<<HTML
    <style type="text/css">#dashboard-widgets-wrap {display:none;}</style>
    <script type="text/javascript">
    jQuery(document).ready( function($) {
        $('#dashboard-widgets-wrap').delay(1200).fadeTo('slow',1);
        $('<div style="width:100%;text-align:center;margin:8px 0"><img src="http://cdn.sstatic.net/wordpress/img/logo.png?v=123" width="483" height="43"></div>').insertBefore('#dashboard-widgets-wrap');
    });     
    </script>
HTML;
}
add_action('admin_head-index.php', 'wpse_53035_script_enqueuer');
share|improve this answer
    
Perfect, thanks –  Dean Elliott May 24 '12 at 14:35

You could hook into the admin_head action and include some custom CSS to attach a background image to the div with an id of wpbody-content.

http://codex.wordpress.org/Plugin_API/Action_Reference/admin_head-%28plugin_page%29

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.