Come posso organizzare meglio i menu dei Custom Post Type a livello di codice?

25 ott 2012, 20:13:01
Visualizzazioni: 905
Voti: 3

Un progetto che ho ereditato aveva una dozzina di custom post type. Il problema è che compaiono tutti separatamente nel menu laterale di amministrazione. Non è molto ordinato. Esiste un plugin che mi permetta di renderli elementi secondari di un menu principale, oppure esiste un modo, a livello di codice, per modificare il functions.php del mio tema e organizzarli come sottomenu?

0
Tutte le risposte alla domanda 1
3

Nella funzione per registrare un nuovo custom post type puoi impostare questo CPT come sottomenu di un elemento del menu esistente. Usa il parametro show_in_menu

Un esempio:

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',
            'can_export'      => TRUE,
            'capability_type' => 'post',
            'query_var'       => TRUE
        )
    ) 
);

Puoi trovare la stringa per gli elementi passando il mouse sopra, come upload.php nell'elemento Media.

25 ott 2012 20:54:32
Commenti

Ho utilizzato questo comodo generatore per creare un Custom Post Type, e poi ho installato il plugin gratuito Admin Menu Editor e creato un menu personalizzato chiamato "Gestione" con slug/hook come "mgmt". Successivamente, tutto ciò che dovevo fare nel mio codice auto-generato del custom post type era aggiungere la riga 'show_in_menu' => 'mgmt', e infatti — funziona! Grazie mille!

Volomike Volomike
25 ott 2012 21:09:04

Benvenuto. Per ogni lavoro dagli un generatore ;)

bueltge bueltge
25 ott 2012 21:32:58

Sì, non posso sempre fidarmi che i generatori siano disponibili sul web, quindi devo solo costruire il mio script PHP che replichi questo. Inoltre, è abbastanza facile usare la funzione add_menu_page() per creare il menu "Gestione" invece di usare l'Admin Menu Editor.

Volomike Volomike
26 ott 2012 00:35:26