web-dev-qa-db-fra.com

Puis-je regrouper des types de publication personnalisés?

Maintenant que WordPress 3.1 est sorti, où est la documentation pour regrouper les types de publication personnalisés dans le backend wp?

4
Amit Erandole

Si vous vous demandez comment regrouper plusieurs types d'articles dans un menu, vous pouvez facilement le faire avec l'argument show_in_menu lors de la configuration de votre menu. Voir ci-dessous:

$args = array(
 'public' => true,
 'show_ui' => true, 
 'query_var' => true,
 'rewrite' => true,
 'capability_type' => 'post',
 'hierarchical' => false,
 'show_in_menu' => 'your-custom-menu-slug.php',
 'menu_position' => null,
 'supports' => array('title','editor','custom-fields'),
 'has_archive' => true
);
register_post_type('your-post-type',$args);

Remarque: Pour que cela fonctionne, show_ui doit également être défini sur true.

Ensuite, vous créeriez un menu en utilisant la fonction add_menu_page.

function add_your_menu() {
  add_menu_page( 'Multiple Post Types Page', 'Multiple Post Types', 'manage_options', 'your-custom-menu-slug.php', 'your_menu_function');
  // add_submenu_page() if you want subpages, but not necessary
}
add_action('admin_menu', 'add_your_menu');

De la même manière, vous pouvez également associer des types de publication à n’importe quel menu existant. Par exemple, il peut être utile de joindre certains types de publication à "Publications" et d'autres à "Pages", tandis que d'autres peuvent appartenir à "Outils". Si vous vous attachez à un menu existant, vous pouvez ignorer la fonction add_menu_page ci-dessus et simplement modifier le $args lors de l'enregistrement de votre type de message personnalisé.

3
Velvet Blues

Pour référence future, car cette page occupe un rang assez élevé dans Google, vous êtes non nécessaire pour créer un élément de menu personnalisé si vous souhaitez simplement grouper certains types de publication courants dans le même menu, vous pouvez grouper. ensemble en utilisant les éléments de menu existants:

En définissant un type de message "maître", vous pouvez également faire quelque chose de similaire:

'show_in_menu' => 'edit.php?post_type=a_master_post_type',
1
Gavin