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.

I'm wondering how you go about creating an info/help message at the top of a custom post type in WP's dashboard? I often see these at the top of plugins and Id like to do the same thing for my custom post types if possible (see image below for example --- Note: Screenshot has been taken from NSP-Code's "Post-Types Order" plugin on the settings page")

enter image description here

EDIT #1

Thanks for the help everyone! It appears that I have two distinctly different ways available to me in how I can approach this as outlined by @Stephen & @Bainternet...Both look like viable options so Im going to try them all out and report back with what seems to work best in my situation.

Thanks again for the assistance. WPSE is by far my fav place to learn new things about Wordpress, this place is great.

share|improve this question
    
You mean post types or post formats? –  its_me May 8 '12 at 3:33
    
Hi thanks for the response, I mean Post Types... –  Mr.Brown May 8 '12 at 4:41

2 Answers 2

up vote 4 down vote accepted

The hook you are after is admin_notices. This is fired at the top of every admin page.

If you wish to restrict the notice to certain pages you can use: get_current_screen() to get the current screen.

 $screen = get_current_screen();

You can wrap the notices in div elements with class 'error' or 'updated' to get the red, or yellow styled notices.

For instance:

function wpse51463_admin_notice(){
      $screen = get_current_screen();

    //If not on the screen with ID 'edit-post' abort.
    if( $screen->id !='edit-post' )
        return;

      ?>

      <div class="updated">
        <p>
        A notice on the post list screen
        </p>
      </div>

      <div class="error">
        <p>
        An error message
        </p>
      </div>

     <?php

 }
 add_action('admin_notices','wpse51463_admin_notice');

For a plug-ins settings page (nested under the Settings tab) the screen id should be settings_page_{page-name}. You can of course determine the id of a page by using the above to print the current screen id of every page.

share|improve this answer
    
This solution seemed to work best for my needs, thank you for the thorough explanation as well! –  Mr.Brown May 8 '12 at 18:46

if you want something like this: enter image description here then here is something that does the job:

add_action('admin_footer','print_mynote');
function print_mynote(){
    global $typenow,$pagenow;
    if  (in_array( $pagenow, array( 'post.php', 'post-new.php' )  && "Post_Type_Name" == $typenow ) {
        ?>
        <SCRIPT TYPE="text/javascript">
            jQuery(document).ready(function(){
                var myDiv = jQuery('<div>');
                myDiv.css("border","1px dashed #000000");
                myDiv.css("padding","5px");
                myDiv.css("background","lightyellow");
                myDiv.css("width","70%");
                myDiv.html("PUT your info help message here....");
                jQuery(".wrap").find("h2").after(myDiv);
            });
        </SCRIPT>
    <?php
    }
}

just make sure you change Post_Type_Name to the name of your post type and PUT your info help message here.... to your actual message

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.