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.

hi wanted to know do i group my custom post types to appear together in a group in the wordpress back end menu bar like this below in the picture what code do i have to use in my functions.php so that i can give my custom post types a nice look and feel

http://i39.tinypic.com/281u1og.jpg

currently i am using a custom plugin to add functions and it looks like this

<?php
/**
 * Plugin Name: Custom Functions
 * Plugin URI: http://localhost/
 * Description: This is an awesome custom plugin with functionality that I'd like to keep when switching Themes.
 * Author: Phantom.omaga
 * Version: 0.1.0
 */

/* Place custom code below this line. */

add_action( 'init', 'create_post_type' );

function create_post_type() {  

/*Custom post type Series has been decleared here*/
    register_post_type( 'series',  
        array(  
            'labels' => array(  
                'name' => __( 'Series' ),  
                'singular_name' => __( 'Series' )  
            ),  
        'public' => true,  
        'menu_position' => 40,  
        'rewrite' => array('slug' => 'Series')  
        )  
    );

/*Custom post type Episodes has been decleared here*/
    register_post_type( 'epsodes',  
        array(  
            'labels' => array(  
                'name' => __( 'Episodes' ),  
                'singular_name' => __( 'Episode' )  
            ),  
        'public' => true,  
        'menu_position' => 41,  
        'rewrite' => array('slug' => 'Episodes')  
        )  
    );    

/*Custom post type Mirrors has been decleared here*/
    register_post_type( 'Mirrors',  
        array(  
            'labels' => array(  
                'name' => __( 'Mirrors' ),  
                'singular_name' => __( 'Mirror' )  
            ),  
        'public' => true,  
        'menu_position' => 41,  
        'rewrite' => array('slug' => 'Mirror')  
        )  
    );   

}  


/* Place custom code above this line. */
?>
share|improve this question
add comment

1 Answer 1

up vote 5 down vote accepted

The filter

Inside /wp-admin/menu.php, you'll find this filter at the end of the "add css classes"-loop: apply_filters( 'add_menu_classes', $menu )

The function

The following code attaches the right classes to the first and previous elements. It also adds the separator in between. If you need to add another separator to the end/after your group, you'll have to extend the function to do the following:

  • Take the last element in your group and treat it exactly as you currently treat your previous element.
  • Add the separator one key after your last element
  • Add the same classes to the following/next element right after your group
  • Check if there's not already a separator in place. See current check.

Use the $target array to look up for the names of the targeted menu elements. Just use exactly what you see in your menu and it adds a separator before the element.


Moved the code to GitHub as public Gist

share|improve this answer
1  
ok thanks for the help –  phantom.omaga Oct 29 '11 at 16:21
1  
tried it and it works!!! so thanks a lot –  phantom.omaga Oct 29 '11 at 16:49
add comment

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.