It seems that many of you don’t want to show the new feature called “Welcome Panel” since WordPress 3.3. I guess that those who do not want to display this message try to hide this box to their clients, that’s why I thought that instead of hiding it you should customize it and display it with your own content. To display a custom welcome message, we are going to create a small plugin. That way even when upgrading to a new version of WordPress the message shown will your message and not the default one.
Let’s get started!
Let’s Create A Plugin
To create a plugin, create a new folder under wp-content/plugins, and call it custom-dashboard-message. Within this folder create a file called custom-dashboard-message.php and open it in your code editor (by the way Coda 2 is great!). Simply paste this code in the newly created file:
<?php
/*
Plugin Name: Custom Dahsboard Message
Plugin URL: https://www.wpexplorer.com/
Description: A little plugin to modify default dashboard welcome message
Version: 0.1
Author: WExplorer
Author URI: https://www.wpexplorer.com/
*/
This code simply creates a plugin… yes i know, WordPress is too easy for you!
No we need to create a function that will remove the default dashboard message so that we can after add our own custom welcome panel content. By using remove_action on the welcome_panel hook we remove the default hooked wp_welcome_panel function which returns the content of the welcome panel.
/**
* Remove the default welcome dashboard message
*
* @access public
* @since 1.0
* @return void
*/
remove_action( 'welcome_panel', 'wp_welcome_panel' );
Our Custom Welcome Message
If you go now to your dashboard (don’t forget to activate the plugin!), you will no longer see any welcome screen – yay!. So now we can create our own custom function and hook it into the welcome_panel hook so it displays ours instead. This part is the simple, all you need to do is create a custom function and add the content you want for the welcome panel. In my example I started from the default content, from the wp_welcome_panel() default function. It’s easier just because it allows me to use already formatted content. So I just copied and pasted this function (find it under wp-admin/includes/dashboard.php) then edited it.
Here is what my function looks like (notice how the function is followed by add_action and hooked into welcome_panel).
/**
* Custom welcome panel function
*
* @access public
* @since 1.0
* @return void
*/
function wpex_wp_welcome_panel() { ?>
<div class="custom-welcome-panel-content">
<h3><?php _e( 'Welcome to your custom dashboard Message!' ); ?></h3>
<p class="about-description"><?php _e( 'Here you can place your custom text, give your customers instructions, place an ad or your contact information.' ); ?></p>
<div class="welcome-panel-column-container">
<div class="welcome-panel-column">
<h4><?php _e( "Let's Get Started" ); ?></h4>
<a class="button button-primary button-hero load-customize hide-if-no-customize" href="http://your-website.com"><?php _e( 'Call me maybe !' ); ?></a>
<p class="hide-if-no-customize"><?php printf( __( 'or, <a href="%s">edit your site settings</a>' ), admin_url( 'options-general.php' ) ); ?></p>
</div><!-- .welcome-panel-column -->
<div class="welcome-panel-column">
<h4><?php _e( 'Next Steps' ); ?></h4>
<ul>
<?php if ( 'page' == get_option( 'show_on_front' ) && ! get_option( 'page_for_posts' ) ) : ?>
<li><?php printf( '<a href="%s" class="welcome-icon welcome-edit-page">' . __( 'Edit your front page' ) . '</a>', get_edit_post_link( get_option( 'page_on_front' ) ) ); ?></li>
<li><?php printf( '<a href="%s" class="welcome-icon welcome-add-page">' . __( 'Add additional pages' ) . '</a>', admin_url( 'post-new.php?post_type=page' ) ); ?></li>
<?php elseif ( 'page' == get_option( 'show_on_front' ) ) : ?>
<li><?php printf( '<a href="%s" class="welcome-icon welcome-edit-page">' . __( 'Edit your front page' ) . '</a>', get_edit_post_link( get_option( 'page_on_front' ) ) ); ?></li>
<li><?php printf( '<a href="%s" class="welcome-icon welcome-add-page">' . __( 'Add additional pages' ) . '</a>', admin_url( 'post-new.php?post_type=page' ) ); ?></li>
<li><?php printf( '<a href="%s" class="welcome-icon welcome-write-blog">' . __( 'Add a blog post' ) . '</a>', admin_url( 'post-new.php' ) ); ?></li>
<?php else : ?>
<li><?php printf( '<a href="%s" class="welcome-icon welcome-write-blog">' . __( 'Write your first blog post' ) . '</a>', admin_url( 'post-new.php' ) ); ?></li>
<li><?php printf( '<a href="%s" class="welcome-icon welcome-add-page">' . __( 'Add an About page' ) . '</a>', admin_url( 'post-new.php?post_type=page' ) ); ?></li>
<?php endif; ?>
<li><?php printf( '<a href="%s" class="welcome-icon welcome-view-site">' . __( 'View your site' ) . '</a>', home_url( '/' ) ); ?></li>
</ul>
</div><!-- .welcome-panel-column -->
<div class="welcome-panel-column welcome-panel-last">
<h4><?php _e( 'More Actions' ); ?></h4>
<ul>
<li><?php printf( '<div class="welcome-icon welcome-widgets-menus">' . __( 'Manage <a href="%1$s">widgets</a> or <a href="%2$s">menus</a>' ) . '</div>', admin_url( 'widgets.php' ), admin_url( 'nav-menus.php' ) ); ?></li>
<li><?php printf( '<a href="%s" class="welcome-icon welcome-comments">' . __( 'Turn comments on or off' ) . '</a>', admin_url( 'options-discussion.php' ) ); ?></li>
<li><?php printf( '<a href="%s" class="welcome-icon welcome-learn-more">' . __( 'Learn more about getting started' ) . '</a>', __( 'http://codex.wordpress.org/First_Steps_With_WordPress' ) ); ?></li>
</ul>
</div><!-- .welcome-panel-column welcome-panel-last -->
</div><!-- .welcome-panel-column-container -->
<div><!-- .custom-welcome-panel-content -->
<?php }
add_action( 'welcome_panel', 'wpex_wp_welcome_panel' );
You can simply edit this part of the code to create your content, add links, images, forms or whatever…
The Final Plugin Code
Here is the full plugin code, enjoy!
<?php
/*
Plugin Name: Custom Dahsboard Message
Plugin URL: https://www.wpexplorer.com/
Description: A little plugin to modify default dashboard welcome message
Version: 0.1
Author: WExplorer
Author URI: https://www.wpexplorer.com/
*/
/**
* Remove the default welcome dashboard message
*
*/
remove_action( 'welcome_panel', 'wp_welcome_panel' );
/**
* Custom welcome panel function
*
* @access public
* @since 1.0
* @return void
*/
function wpex_wp_welcome_panel() { ?>
<div class="custom-welcome-panel-content">
<h3><?php _e( 'Welcome to your custom dashboard Message!' ); ?></h3>
<p class="about-description"><?php _e( 'Here you can place your custom text, give your customers instructions, place an ad or your contact information.' ); ?></p>
<div class="welcome-panel-column-container">
<div class="welcome-panel-column">
<h4><?php _e( "Let's Get Started" ); ?></h4>
<a class="button button-primary button-hero load-customize hide-if-no-customize" href="http://your-website.com"><?php _e( 'Call me maybe !' ); ?></a>
<p class="hide-if-no-customize"><?php printf( __( 'or, <a href="%s">edit your site settings</a>' ), admin_url( 'options-general.php' ) ); ?></p>
</div><!-- .welcome-panel-column -->
<div class="welcome-panel-column">
<h4><?php _e( 'Next Steps' ); ?></h4>
<ul>
<?php if ( 'page' == get_option( 'show_on_front' ) && ! get_option( 'page_for_posts' ) ) : ?>
<li><?php printf( '<a href="%s" class="welcome-icon welcome-edit-page">' . __( 'Edit your front page' ) . '</a>', get_edit_post_link( get_option( 'page_on_front' ) ) ); ?></li>
<li><?php printf( '<a href="%s" class="welcome-icon welcome-add-page">' . __( 'Add additional pages' ) . '</a>', admin_url( 'post-new.php?post_type=page' ) ); ?></li>
<?php elseif ( 'page' == get_option( 'show_on_front' ) ) : ?>
<li><?php printf( '<a href="%s" class="welcome-icon welcome-edit-page">' . __( 'Edit your front page' ) . '</a>', get_edit_post_link( get_option( 'page_on_front' ) ) ); ?></li>
<li><?php printf( '<a href="%s" class="welcome-icon welcome-add-page">' . __( 'Add additional pages' ) . '</a>', admin_url( 'post-new.php?post_type=page' ) ); ?></li>
<li><?php printf( '<a href="%s" class="welcome-icon welcome-write-blog">' . __( 'Add a blog post' ) . '</a>', admin_url( 'post-new.php' ) ); ?></li>
<?php else : ?>
<li><?php printf( '<a href="%s" class="welcome-icon welcome-write-blog">' . __( 'Write your first blog post' ) . '</a>', admin_url( 'post-new.php' ) ); ?></li>
<li><?php printf( '<a href="%s" class="welcome-icon welcome-add-page">' . __( 'Add an About page' ) . '</a>', admin_url( 'post-new.php?post_type=page' ) ); ?></li>
<?php endif; ?>
<li><?php printf( '<a href="%s" class="welcome-icon welcome-view-site">' . __( 'View your site' ) . '</a>', home_url( '/' ) ); ?></li>
</ul>
</div><!-- .welcome-panel-column -->
<div class="welcome-panel-column welcome-panel-last">
<h4><?php _e( 'More Actions' ); ?></h4>
<ul>
<li><?php printf( '<div class="welcome-icon welcome-widgets-menus">' . __( 'Manage <a href="%1$s">widgets</a> or <a href="%2$s">menus</a>' ) . '</div>', admin_url( 'widgets.php' ), admin_url( 'nav-menus.php' ) ); ?></li>
<li><?php printf( '<a href="%s" class="welcome-icon welcome-comments">' . __( 'Turn comments on or off' ) . '</a>', admin_url( 'options-discussion.php' ) ); ?></li>
<li><?php printf( '<a href="%s" class="welcome-icon welcome-learn-more">' . __( 'Learn more about getting started' ) . '</a>', __( 'http://codex.wordpress.org/First_Steps_With_WordPress' ) ); ?></li>
</ul>
</div><!-- .welcome-panel-column welcome-panel-last -->
</div><!-- .welcome-panel-column-container -->
<div><!-- .custom-welcome-panel-content -->
<?php }
add_action( 'welcome_panel', 'wpex_wp_welcome_panel' );