Les taxonomies sont très utiles pour toutes sortes de choses. Mais comme beaucoup ont souligné , ils souffrent de leur incapacité à transporter des métadonnées.
En supposant que je n'ai que des publications qui n'ont pas de parents "naturels" sur mon site, pourquoi ne devrais-je pas taxonomiser mes publications en les attachant à un post_parent et stocker mes métadonnées dans le post_meta du parent?
PAR EXEMPLE
J'ai un CPT 'oiseaux' et une taxonomie 'user_bird_collection'.
J'ai un utilisateur, Jack, et je veux ajouter le Canary à sa collection.
avec une taxonomie
Je crée (ou ajoute) un terme dans la collection user_bird_collection appelé 'Jack' (ou quelque chose de plus unique, comme son UID), en ajoutant le terme Canary au terme.
Quand Jack va sur mybirds.com/my_collection, je lui montre tous les oiseaux de son mandat.
S'il veut faire mieux et nommer son canari, je suis dans le pétrin parce que je dois ajouter des métadonnées à la relation entre le canari et la collection de Jack.
Avec post_parents
Je crée un nouveau poste avec Jack en tant qu'auteur, dont post_parent est l'ID du canari.
Lorsque Jack se rend sur la page de collection, je lui montre tous les articles qui lui appartiennent et je réoriente intelligemment toutes les demandes de détails d'oiseaux, d'images, etc. jusqu'au canari d'origine.
Quand il veut nommer son canari, tout ce que j'ai à faire est d'ajouter des métadonnées au message de Jack - en réalité, sa "propre" copie du canari, une sorte d'enveloppe autour.
AVANTAGES ÉVIDENTS
Quel est le problème avec le faire de cette façon?
Vous pouvez ajouter des métadonnées de taxonomie, similaires à add_post_meta
, et en voici quelques exemples:
Tutoriel pas à pas
Classe de métadonnées de taxonomie (version améliorée de ci-dessus)
J'ai personnellement utilisé moi-même cette classe, qui a également été créée par un membre réputé et modérateur, ici à WPSE -> Bainternet
, elle a fait ce qui est indiqué sur la boîte.
Plugin
Tutoriel pas à pas
Cela mis à part ...
Si vous avez un utilisateur, nommé Jack par exemple, alors pourquoi ne lui assignez-vous pas le type de publication personnalisé via un champ méta de publication dans une boîte à méta?
Donc, tu regarderais,
Vous pouvez toujours utiliser des taxonomies personnalisées pour vous aider à mieux classifier ou grouper vos données, mais une grande partie de ce que vous essayez d'atteindre est tout simplement la même chose que si vous le faisiez avec des méta-données posta pour commencer (par exemple, add_post_meta).
Et pour simplifier les choses, vous pouvez utiliser une classe de méta-boîtes pour déployer vos solutions,
http://fr.bainternet.info/2012/how-i-add-a-wordpress-metaboxhttp: // www.deluxeblogtips.com/meta-box/http://www.farinspace.com/wpalchemy-metabox/
J'ai utilisé tout ce qui précède, qui sont tous bons. J'utilise toujours WPAlchemy et la classe Meta-Box de Deluxe Blog Tips. Quant à Bainternet, il n’ya rien de mal avec cette classe, c’est une question d’en utiliser déjà trop. Alors faites votre choix.
Mon approche à ce sujet serait de
c) créer une meta box avec deux champs
Le processus serait de,
En utilisant un champ répétable comportant un bouton Ajouter maintenant , vous pouvez ajouter un autre utilisateur. Mais au lieu de regrouper tous les champs méta dans un seul post meta_key
, vous devez créer des clés méta postales distinctes pour chaque utilisateur que vous souhaitez associer à l'oiseau. Sinon, vous obtiendrez des données sérialisées lentes à interroger.
Même cette approche peut être améliorée.
Vous pouvez plutôt associer la taxonomie "Canary" à l'utilisateur via User Meta.
Pour chaque type d'oiseau de la collection users, utilisez add_user_meta pour appliquer le nom choisi par l'utilisateur pour l'oiseau.
Votre méta-boîte que vous créez via add_meta_box
n'est pas strictement limitée à l'utilisation de fonctions add_post_meta
, etc. Vous pouvez écrire votre fonction pour qu'elle utilise plutôt add_user_meta
et update_user_meta
. Et ainsi de suite.
Cela laisse une séparation claire entre chacun de vos éléments.
Je dois dire que l'idée post_parents
n'est vraiment pas bonne, car créer une nouvelle publication pour ce qui est autrement des méta-données équivaut à un fiasco lorsque nous avons déjà les tables Taxonomy et User à associer à la table Posts. pour votre type de message personnalisé.
Je ne vois pas beaucoup de problème en dehors du fait qu'il ne peut y avoir qu'un seul parent après. Utiliser une relation de type post-à-post, ce qui permet de créer plusieurs relations, serait une voie alternative, où vos "termes de taxonomie" sont en réalité des publications d'un type de publication personnalisé et peuvent donc avoir un contenu (et même des taxonomies). etc.) qui leur sont associés. La belle Posts 2 Posts plug-in rend cela beaucoup plus facile à accomplir, et avec l'interface utilisateur pour démarrer.
À partir de WordPress 4.4 , le terme méta taxinomie fait désormais partie de WordPress de base .
Vous pouvez utiliser les nouvelles fonctions suivantes pour gérer les méta de terme:
Toutefois, pour le cas d'utilisation particulier de cette question, le moyen le plus efficace de gérer la relation utilisateur avec une publication peut être d'utiliser Posts2Posts (plug-in créé et maintenu par scribu, un contributeur principal).
En utilisant ce plugin, vous pouvez créer une relation entre un utilisateur et une publication et également ajouter des métadonnées à la relation elle-même .