Меню пользовательских сообщений

Я пишу плагин для работы, потому что наш главный сайт портируется на WordPress в конце концов. У меня есть несколько настраиваемых типов сообщений, запланированных для этого плагина, и хотелось бы сгруппировать их в одно главное меню.

В принципе, я хочу, чтобы ссылка «Посетители» была помещена под «Argus Admin». Другие ссылки необязательно добавлять, поскольку я могу «взломать» те, где захочу.

$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 ); 

Это моя страница меню, которую я создал:

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

Solutions Collecting From Web of "Меню пользовательских сообщений"

Вы поняли это правильно, но вам нужно дождаться WordPress 3.1, где он действительно реализован. если вы не можете ждать, вы можете изменить «show_in_menu» на false и использовать функцию add_submenu_page (), чтобы определить «argus» как верхнюю страницу и добавить посетителей «вручную» в меню администратора Argus.

поэтому ваш код будет:

 $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 ); 

а потом

 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'); 

Надеюсь это поможет

Если это будет перенесено в WordPress в конце концов (как в, а не на несколько недель), я предлагаю ждать выхода WordPress 3.1. Это происходит очень скоро, и это уже делается. Конечно, вы могли бы пропустить ожидание и просто развиться на стволе. То, как вы это делаете, должно работать в 3.1 без каких-либо изменений.