Benutzerdefinierte Post-Typ-Menüs

Ich schreibe ein Plugin für die Arbeit, weil unsere Hauptwebseite schließlich zu WordPress portiert wird. Ich habe mehrere benutzerdefinierte Post-Typen für dieses Plugin geplant und möchte sie alle in einem Hauptmenü gruppieren.

Grundsätzlich möchte ich den Link “Besucher” unter “Argus Admin” platzieren. Die anderen Links müssen nicht hinzugefügt werden, da ich diese “hacken” kann, wo immer ich will.

$v_args = array( 'labels' => array ( 'name' => 'Visitors', 'singular_name' => 'Visitor', 'add_new_item' => 'Register New Visitor', // TODO: http://codex.wordpress.org/Function_Reference/register_post_type#Arguments ), 'public' => true, 'publicly_queryable' => false, 'exclude_from_search' => true, 'show_ui' => true, 'show_in_menu' => 'argus', // TODO: This doesn't work... 'hiearchical' => false, 'supports' => array( '' ), 'register_meta_box_cb' => array ( &$this, '_wp_visitor_meta_box_cb' ), ); register_post_type( $post_type, $v_args ); 

Dies ist meine Menüseite, die ich erstellt habe:

 add_menu_page( 'Argus', 'Argus Admin', 'manage_options', 'argus', array( &$this, '_wp_argus_main_panel' ), '', -1 ); 

Solutions Collecting From Web of "Benutzerdefinierte Post-Typ-Menüs"

Du hast es richtig gemacht, aber du musst auf WordPress 3.1 warten, wo es tatsächlich implementiert wurde. Wenn Sie nicht warten können, können Sie ‘show_in_menu’ auf false setzen und die function add_submenu_page () verwenden. Definieren Sie ‘argus’ als oberste Seite und fügen Sie die Besucher “manuell” im Argus Admin Menü hinzu.

also wäre dein Code:

 $v_args = array( 'labels' => array ( 'name' => 'Visitors', 'singular_name' => 'Visitor', 'add_new_item' => 'Register New Visitor', ), 'public' => true, 'publicly_queryable' => false, 'exclude_from_search' => true, 'show_ui' => true, 'show_in_menu' => 'flase', 'hiearchical' => false, 'supports' => array( '' ), 'register_meta_box_cb' => array ( &$this, '_wp_visitor_meta_box_cb' ), ); register_post_type( $post_type, $v_args ); 

und dann

 add_menu_page( 'Argus', 'Argus Admin', 'manage_options', 'argus', array( &$this, '_wp_argus_main_panel' ), '', -1 ); add_submenu_page( argus, 'Visitors', 'Visitors', 'manage_options' , 'visitors' , 'edit.php?post_type=visitors'); 

Hoffe das hilft

Wenn dies irgendwann zu WordPress portiert werden soll (wie in, nicht für weitere Wochen), würde ich vorschlagen, auf WordPress 3.1 zu warten. Es ist sehr bald fällig, und das tut es schon. Natürlich könntest du das Warten auslassen und einfach am Kofferraum entwickeln. Die Art und Weise, wie Sie es dort tun, sollte in 3.1 ohne Änderungen funktionieren.