Как программно лучше организовать меню пользовательских типов записей?

25 окт. 2012 г., 20:13:01
Просмотры: 905
Голосов: 3

В проекте, который я унаследовал, используется дюжина пользовательских типов записей. Проблема в том, что все они отображаются в боковом меню админ-панели отдельно. Это не очень аккуратно. Есть ли плагин, который позволит мне сделать их подпунктами родительского меню, или существует ли способ программно отредактировать functions.php моей темы, чтобы организовать их как подменю?

0
Все ответы на вопрос 1
3

В функции для регистрации нового пользовательского типа записи можно установить этот CPT как подменю к существующему пункту меню. Используйте параметр show_in_menu

Пример:

register_post_type( 
    'issue', 
    apply_filters( 'wpit_register_issue_post_type', 
        array(
            'labels'          => $issue_labels,
            'rewrite'         => $issue_rewrite,
            'supports'        => $issue_supports,
            'taxonomies'      => $issue_taxonomies,
            'menu_position'   => 5,
            'public'          => true,
            'show_ui'         => true,
            'show_in_menu'   => 'edit.php', // Указывает, что CPT будет подменю пункта "Записи"
            'can_export'      => true,
            'capability_type' => 'post',
            'query_var'       => true
        )
    ) 
);

Строки для пунктов меню можно найти при наведении курсора, например upload.php соответствует пункту Медиафайлы.

25 окт. 2012 г. 20:54:32
Комментарии

Я использовал этот удобный генератор для создания Пользовательского типа записи, затем установил бесплатный плагин Admin Menu Editor и создал пользовательское меню с названием "Управление" и слагом/хуком "mgmt". После этого всё, что мне нужно было сделать в моём автоматически сгенерированном коде пользовательского типа записи — это добавить строку 'show_in_menu' => 'mgmt',, и, конечно же, всё заработало! Большое спасибо!

Volomike Volomike
25 окт. 2012 г. 21:09:04

Пожалуйста. Для каждой задачи нужен свой генератор ;)

bueltge bueltge
25 окт. 2012 г. 21:32:58

Да, я не всегда могу доверять генераторам в интернете, поэтому мне нужно создать собственный PHP-скрипт, который будет делать то же самое. Кроме того, довольно легко использовать функцию add_menu_page() для создания меню "Управление" вместо использования Admin Menu Editor.

Volomike Volomike
26 окт. 2012 г. 00:35:26