2010-10-05 6 views
0

Le codex WordPress a beaucoup d'exemples de la façon d'enregistrer des taxonomies personnalisées avec des types de messages personnalisés, mais je ne pouvais pas trouver beaucoup sur l'utilisation de taxonomies intégrées (tags & catégories) avec cpts.Dans WordPress, comment pouvez-vous enregistrer des taxonomies intégrées avec des types de postes personnalisés dans le code?

J'ai un cpt appelé listes, et j'ai besoin d'ajouter la catégorie standard et tag éléments d'interface utilisateur à la page cpt liste. Je dois aussi faire cela avec du code dans mes fonctions.php, plutôt que d'utiliser un plugin.

Répondre

1

Pas un problème du tout. Lorsque vous enregistrez le type de poste, il suffit d'ajouter cet argument au tableau:

'taxonomies' => array('category', 'post_tag') 
+0

Génial! Cela a fonctionné parfaitement. – jnthnclrk

0

Supposons que vous avez défini votre cpt (type de poste personnalisé) par ce qui suit:

register_post_type('listings', $args); // where $args is an array of your cpt settings 

Ensuite, vous pouvez utiliser ce qui suit pour ajouter la taxonomie:

// category-like: 
register_taxonomy('listing_category', array('listings'), array('hierarchical' => true, ...)); 

// tag-like: 
register_taxonomy('listing_tag', array('listings'), array('hierarchical' => false, ...); 

en fait, je mets personnellement ces définitions de type personnalisé dans mon propre plug-in (non ouvert au public car il offre mes propres fonctionnalités du site, qui conviennent évidemment pas l'Ancien Testament le sien du tout). Le problème de mettre dans functions.php augmente la difficulté de passer à un nouveau thème (bien que le changement de thème ne soit pas si fréquent, mais pour un blog personnel, cela arrive un jour).

En outre, les types de publications personnalisées doivent être définis sur l'ensemble du site, et non en fonction du thème en cours. Donc, sémantiquement, cela ne devrait pas être dans le répertoire du thème.

+0

PeterWong, Re: ne pas utiliser functions.php: Comment créer un thème avec des CPT que d'autres peuvent facilement utiliser sans avoir à utiliser de plugins supplémentaires et/ou y arriver avec du code? – jnthnclrk

+0

Non, il n'est pas destiné à la distribution. C'est pour votre propre commodité. Je pense que vous voulez avoir un tout nouveau look. Vous devez ensuite tout repenser. Et vous devez ouvrir votre ancienne functions.php et copier vos définitions CPT dans votre nouveau functions.php. Pourquoi faire copier et coller? Les mettre dans un plugin auto-détenu réduit réellement vos travaux! Ces CPT resteraient dans votre backend même si vous passiez à un autre thème. Bien sûr, la personnalisation de l'avant est un must. – PeterWong

+0

Je ne comprends pas vraiment ce que vous suggérez. Je suis très content de créer des CPT sur un thème par thème. Merci. – jnthnclrk