Dans cette série, nous examinons ce que sont les taxonomies WordPress, leur définition, quand les utiliser et comment les intégrer à nos thèmes. Pour nous assurer de traiter ce sujet le plus en détail possible, nous abordons cette question du point de vue du débutant..
Comme mentionné dans le premier article de la série, cette série ne s’adresse pas aux débutants. Vous êtes peut-être un développeur WordPress intermédiaire qui cherche à commencer à se diversifier dans de nouvelles API et à implémenter de nouvelles fonctionnalités dans son travail et dans les taxonomies qui correspondent exactement à la facture..
Quel que soit le cas, nous faisons tout notre possible pour nous assurer que vous disposerez du plus d'informations possible pour intégrer des taxonomies personnalisées à vos projets WordPress..
Avant d’envisager une mise en œuvre concrète de la manière d’intégrer les taxonomies, nous devons aborder certains des problèmes liés à l’incorporation de la taxonomie dans notre travail..
Plus précisément, les taxonomies doivent-elles être incluses dans un thème ou dans un plugin? Cette question est vraiment plus une question de "pourquoi devrions-nous inclure les taxonomies de cette façon?" et "quand devrions-nous inclure les taxonomies de cette façon?"
Et pour répondre à cette question, il est important de faire la distinction entre les deux options que nous avons et la manière dont les données sont stockées..
Commençons par discuter de la manière dont les taxonomies sont stockées en interne dans WordPress. Les taxonomies se composent de deux composants: une taxonomie et un terme.
Par exemple, en ce qui concerne les post-formats, la taxonomie est Format du post et les termes sont la norme, Vidéo, Image, Lien, etc. De même, une autre taxonomie peut être La photographie et les termes peuvent être Film et Numérique.
Dans le cas le plus élémentaire, la taxonomie par défaut de WordPress et l’appariement de termes sont Catégorie et Non classé c'est fourni avec chaque installation.
À partir de là, il est important de comprendre comment ces données sont gérées dans la base de données WordPress. Il y a trois tables de base de données qui jouent chacune un rôle dans la relation entre les taxonomies et leurs termes associés..
En supposant que vous travaillez avec l’installation par défaut (c’est-à-dire que le préfixe de la table est wp_
), vous aurez alors les tables suivantes, chacune avec les responsabilités correspondantes:
wp_terms
représente les termes appartenant à différentes taxonomies. Cela signifie que si vous avez un La photographie taxonomie avec deux termes étant Film et Numérique et vous avez une taxonomie appelée Type avec Couleur et Noir et blanc étant des termes, alors Film, Numérique, et Couleur résideront tous dans le wp_terms
table.wp_term_taxonomy
est une table de base de données chargée de stocker la description des termes stockés dans le wp_terms
table. Disons, par exemple, que vous avez un Couleur terme et le terme est décrit comme "Photographies développées dans des couleurs vives." Alors cette description résiderait dans le wp_term_taxonomy
table.wp_term_relationships
est sans doute celui qui a la plus longue courbe d’apprentissage pour les nouveaux développeurs. Cette table maintient le lien entre les taxonomies associées à quels types d'article. Par exemple, dans le cas d’une installation par défaut, cette table stockera la relation entre le terme de catégorie et chaque publication à laquelle elle est associée..Maintenant que nous comprenons comment les données sont stockées, nous pouvons discuter du moment où les taxonomies ont un sens dans le contexte des thèmes et dans celui des plugins..
En règle générale, une bonne règle est de noter que les thèmes WordPress doivent être destinés à la présentation des données et les plugins à la fonctionnalité. C'est-à-dire que les thèmes fournissent le format de l'apparence des données et que les plugins étendent les fonctionnalités de base de WordPress..
Il y a aussi la notion d'extensions qui sont comme des plugins spécifiques à un thème et des plugins spécifiques à un plugin, mais cela dépasse le cadre de cet article. Pour l'instant, gardons la discussion au niveau des thèmes et des plugins.
Supposons que vous travaillez sur un thème et que vous souhaitiez introduire une taxonomie personnalisée dans le thème. En accord avec nos exemples utilisés tout au long de la série, supposons que vous vouliez créer un thème de portefeuille et que vous vouliez vous présenter. une La photographie taxonomie. Après tout, le thème va permettre aux utilisateurs de présenter leur travail.
Ensuite, supposons que vous souhaitiez travailler sur le même thème dans un an environ, mais que vous souhaitiez effectuer une mise à niveau majeure. Peut-être que vous voulez généraliser les taxonomies afin que les gens ne doivent pas l'utiliser juste pour la photographie. Au lieu de cela, ils peuvent l'utiliser pour de courts poèmes ou écrits, des dessins, etc..
Le problème est que vous avez maintenant le La photographie taxonomie codée en dur dans le thème de sorte que tous ceux qui l'utilisent et l'installent obtiennent cette taxonomie particulière, qu'ils veuillent ou non présenter des photographies.
Bien sûr, il est tout à fait possible de reconstruire le thème à partir de la base et d'abréger la fonction de taxonomie en quelque chose de plus général, mais que se passe-t-il pour les utilisateurs qui souhaitent effectuer une mise à niveau? Perdent-ils les données avec lesquelles ils ont passé des mois ou des années à travailler? Comment leurs données vont-elles être organisées? Sont-ils coincés avec la version actuelle du thème avec lequel ils travaillent?
De toute évidence, il y a beaucoup à considérer lorsque vous travaillez sur un thème comme celui-ci. Mais c’est là que l’importance de la segmentation de la présentation et des fonctionnalités entre en jeu..
Il est tout à fait possible de créer un thème conçu pour présenter le travail dans un style de portefeuille sans avoir à coder en dur aucun type de taxonomie dans le thème. Créez plutôt la fonctionnalité dans un plug-in, puis installez-le à côté du thème avec lequel vous créez. Vous bénéficiez alors des avantages de la présentation de portefeuille sans que les utilisateurs ne soient obligés d'utiliser votre thème aussi longtemps que possible et de perdre potentiellement leurs données lors de la mise à niveau vers un nouveau thème..
Pour bon nombre des raisons énumérées ci-dessus, il est facile de comprendre pourquoi implémenter des taxonomies personnalisées dans le contexte de plugins.
Cela ne veut pas dire que cela ne devrait jamais être fait par thèmes. Après tout sont thèmes de niche qui ciblent un public très spécifique et qui cherchent à fournir une solution tout-en-un à leurs clients. C'est bien, mais si vous souhaitez introduire ce type de fonctionnalité avec le plus grand attrait possible, il est donc logique de l'intégrer dans un plugin..
Vous obtenez non seulement l'avantage de donner aux utilisateurs la possibilité de transférer leurs données d'un thème à l'autre sans perdre la catégorisation de leurs données, mais vous leur donnez également l'avantage de pouvoir conserver une indépendance entre la présentation de leurs données et le stockage. de leurs données.
Et si vous êtes un développeur de thèmes, vous pouvez toujours travailler pour créer des thèmes conçus spécifiquement autour du plugin. Peut-être voudriez-vous proposer un thème pour les photographes, un pour les écrivains et un autre pour les artistes. Avec cette stratégie, vous pouvez toujours viser à capturer un certain type de marché tout en rendant votre plugin compatible avec les variations de votre travail, ce qui vous permet de travailler sur différents thèmes et de donner à vos clients la possibilité de changer de thème. tout en utilisant vos produits.
Depuis que nous avons examiné la manière dont WordPress gère les taxonomies au sein de la base de données et que nous avons examiné certaines raisons pour lesquelles les thèmes et les plugins doivent fonctionner conjointement pour offrir des fonctionnalités spécifiques, nous allons examiner comment nous pouvons créer notre propre plugin qui implémente la fonctionnalité de taxonomie personnalisée que nous utilisons comme données d'exemple dans cette série.
Entre-temps, n'hésitez pas à laisser des commentaires, des questions ou des commentaires généraux dans le champ ci-dessous..