WordPress 3 comble un certain nombre de lacunes importantes pour devenir un système de gestion de contenu sérieux. La fonction de taxonomies personnalisées facile à utiliser offre aux concepteurs de sites des outils puissants pour la construction d’une bonne architecture d’information. Découvrez ce que sont les taxonomies, pourquoi elles sont utiles et comment les utiliser dans le tutoriel d'aujourd'hui.!
Les taxonomies sont différentes méthodes pour classer les choses.
Les taxonomies sont différentes méthodes pour classer les choses. Ce tutoriel utilise un exemple de publications sur différents ordinateurs de bureau, qui peuvent être classées selon un certain nombre de critères distincts, notamment:
Avant la version 2.3, WordPress ne comportait qu'une seule taxonomie générique, appelée Catégorie, pour les publications. Cela a bien fonctionné pour les blogs, car vous avez pu créer une catégorie de niveau supérieur appelée "Ordinateurs de bureau", avec une sous-catégorie appelée "RAM", pouvant contenir des sous-catégories telles que "Moins de 1 Go", "1 Go", "2 Go à 4 Go, "et ainsi de suite. Une deuxième catégorie enfant "Ordinateurs de bureau" peut être appelée "Système d'exploitation", avec des sous-catégories telles que "Windows XP", "Mac OS", "Red Hat", "Ubuntu", etc..
Lorsqu'un système vous permet d'avoir des catégories pouvant être divisées en sous-catégories, nous l'appelons une structure hiérarchique. Avant la version 2.3 de WordPress, le mieux que vous puissiez faire pour une architecture de site sérieuse consistait à créer une grande hiérarchie de catégories, les catégories de niveau supérieur représentant de grands groupes de taxonomie..
La version 2.3 de WordPress a ajouté un autre type de taxonomie appelé Tags. Bien que les catégories soient généralement définies à l’avance, en fonction des types de contenu d’un site, les balises fournissent une méthode plus libre et plus simple de classification du contenu..
Par exemple, lors de la rédaction d'un article sur un ordinateur de bureau particulier, les balises permettent à l'auteur de saisir un ou plusieurs mots-clés tels que "jeu", "jeu", "fan bruyant", etc. Ces mots clés n’ont peut-être pas de sens en tant que catégories pour l’ensemble du site, mais permettent d’ajouter une classification supplémentaire à un article. Les visiteurs du site pourraient alors facilement retrouver plus tard tous les articles étiquetés avec "fan bruyant". Cependant, la nature libre des balises ne nous aide pas à construire un système de classification solide autour de valeurs connues telles que les types de système d'exploitation ou les types de CPU. Les balises sont également unidimensionnelles, ne permettant aucune structure hiérarchique.
Wordpress version 2.8 a permis d'ajouter des schémas de classification personnalisés en apportant quelques modifications au code sur votre site. Cela vous a permis de créer une liste de systèmes d'exploitation possibles, séparée de la liste de types de RAM possibles, etc. Cependant, il n'a pas permis à ces taxonomies personnalisées d'être construites dans une hiérarchie similaire à la taxonomie des catégories génériques.
Enfin, WordPress version 3 nous donne des taxonomies personnalisées entièrement hiérarchiques. Remarquez comment la nature hiérarchique nous permet de simplifier la taxonomie du système d'exploitation, par exemple en plaçant toutes les différentes variantes de Windows sous une classification parent "Windows". Cela permettra aux visiteurs de voir tous les articles classés avec n’importe quel système d’exploitation Windows ou d’être plus précis et de ne voir que les articles classés avec Windows XP, par exemple..
WordPress version 3 ne vous permet pas de créer des taxonomies personnalisées à partir de l'écran d'administration. Pour définir initialement vos taxonomies personnalisées sans plug-in, vous devez ajouter un peu de code au fichier functions.php de votre thème. Ce n'est pas trop difficile - il suffit de suivre mon exemple.
Pour ajouter des taxonomies personnalisées, nous devons éditer le fichier "functions.php" qui se trouve dans votre répertoire de thèmes. Par exemple, j'utilise le thème par défaut "twentyten" fourni avec WordPress 3.0 et mon installation WordPress se trouve dans un répertoire nommé "wp". Mon fichier functions.php est alors à:
[website_root] /wp/wp-content/themes/twentyten/functions.php.
Nous allons nous en tenir à l'exemple de l'ordinateur de bureau, en ajoutant des taxonomies distinctes pour la RAM, le disque dur et le système d'exploitation. À ce stade, nous ajoutons simplement les taxonomies elles-mêmes, comme des conteneurs vides. Heureusement, nous pouvons ajouter et gérer les différentes classifications, telles que "Windows XP", dans le confort du tableau de bord de l'administrateur..
Premièrement, nous devons créer une fonction qui crée toutes les taxonomies dont nous avons besoin. Nous appellerons la fonction "build_taxonomies". Ajoutons cette fonction au bas du fichier functions.php.
function build_taxonomies () // le code ira ici
Ensuite, pour chaque taxonomie que nous voulons créer, nous devons appeler une fonction WordPress particulière avec les bons paramètres. Voici la fonction et ses paramètres importants expliqués.
register_taxonomy ('internal_name', 'object_type', array ('hierarchical' => true | false, 'label' => 'Nom en lecture humaine', 'query_var' => true | false, 'rewrite' => true | false));
Notre entrée spécifique à l'ajout de la taxonomie du système d'exploitation ressemble à ceci:
register_taxonomy ('système_exploitation', 'post', tableau ('hierarchical' => true, 'label' => 'Système d'exploitation', 'query_var' => true, 'rewrite' => true));
Continuez et ajoutez cela à votre fonction "build_taxonomies".
"register_taxonomy" est défini plus en détail dans le codex WordPress.
Nous devons ajouter une ligne supplémentaire au fichier "functions.php" pour que notre fonction "build_taxonomies" soit réellement exécutée. Nous "accrocherons" la fonction "build_taxonomies" à l'événement "init" en ajoutant le code suivant:
add_action ('init', 'build_taxonomies', 0);
Vous pouvez ajouter cette ligne n'importe où, mais en général, je l'ajoute au-dessus de la fonction que nous appelons. Elle ressemble donc à ceci:
// Code de taxonomie personnalisé add_action ('init', 'build_taxonomies', 0); function build_taxonomies () register_taxonomy ('système_exploitation', 'post', tableau ('hierarchical' => true, 'label' => 'Système d'exploitation', 'query_var' => true, 'rewrite' => true));
En savoir plus sur add_action.
Une fois que vous avez correctement ajouté la taxonomie "Système d'exploitation" au fichier "functions.php", elle apparaît en tant que nouvel élément dans le panneau "Messages" de votre tableau de bord. Cliquez sur le nom de la taxonomie pour ajouter et modifier les classifications que vous souhaitez inclure..
Maintenant, vous pouvez ajouter et éditer des systèmes d’exploitation comme vous ajouteriez des catégories génériques..
Si vous souhaitez ajouter les taxonomies "RAM" et "Disque dur" à suivre avec l'exemple, ajoutez simplement les éléments suivants à votre fichier functions.php:
register_taxonomy ('ram', 'post', array ('hierarchical' => true, 'label' => 'RAM', 'query_var' => true, 'rewrite' => true)); register_taxonomy ('hard_drive', 'post', array ('hierarchical' => true, 'label' => 'Disque dur', 'query_var' => true, 'rewrite' => true));
Une fois terminé, la section modifiée de votre fichier functions.php ressemblera à ceci:
// Code de taxonomie personnalisé add_action ('init', 'build_taxonomies', 0); function build_taxonomies () register_taxonomy ('système_exploitation', 'post', tableau ('hierarchical' => true, 'label' => 'Système d'exploitation', 'query_var' => true, 'rewrite' => true)); register_taxonomy ('ram', 'post', array ('hierarchical' => true, 'label' => 'RAM', 'query_var' => true, 'rewrite' => true)); register_taxonomy ('hard_drive', 'post', array ('hierarchical' => true, 'label' => 'Disque dur', 'query_var' => true, 'rewrite' => true));
Créez quelques nouveaux messages et vos nouvelles options de taxonomie apparaîtront dans l'écran Modifier le message. Sélectionnez les classifications que vous pensez appliquer à vos publications.
Rien de ce que nous avons fait jusqu'à présent ne peut être vu par les visiteurs de votre site. Nous aimerions que les publications montrent les taxonomies personnalisées dans lesquelles elles sont classées, tout comme les publications révèlent généralement leurs catégories et leurs balises..
Pour ce faire, il suffit d’ajouter un simple ajout à la boucle dans certains fichiers modèles..
Dans le thème vingt et de nombreux autres, les catégories et les balises d'un message sont répertoriées sous le corps du texte. Nous allons ajouter des informations de taxonomie personnalisées, si elles existent, juste avant les informations de catégorie et de balise.
Pour ce faire, nous devrons éditer le fichier modèle "single.php", qui est normalement appelé pour afficher une publication individuelle. Mon fichier single.php se trouve à: [website_root] /wp/wp-content/themes/twentyten/single.php.
Dans single.php, trouvez la ligne avec:
Cela apparaît juste avant le:
Dans la vingtaine, cette div contient les catégories, les balises, le lien permanent, et d'autres données pour la publication en cours. Nous allons mettre nos informations de taxonomie juste au-dessus de cette div.
Étape 2 Récupérer des informations taxonomiques sur le poste actuel
Renseignez certaines variables pour conserver la sortie des informations de taxonomie et les différentes informations de taxonomie que nous pouvons espérer trouver.
ID, 'système_exploitation', 'Systèmes d'exploitation): ',', ', ");Ici, nous appelons la liste des fonctions WordPress "get_the_term" avec les paramètres suivants:
- $ post-> ID : l'id du poste actuel.
- 'système opérateur' : le nom de la taxonomie personnalisée que nous vérifions pour les données. Nous demandons si le poste actuel a été classifié dans la taxonomie 'système_exploitation'.
- 'Systèmes d'exploitation)' : Si quelque chose est retourné, c'est la chaîne que nous aimerions avoir devant elle.
- ',' : Si plusieurs éléments sont renvoyés, il s’agit de la chaîne que nous aimerions voir séparés par.
- " : Si quelque chose est retourné, c'est la chaîne que nous aimerions avoir derrière. Dans ce cas, nous ne voulons rien ajouté derrière le résultat.
Nous ferons de même pour les deux autres taxonomies susceptibles de contenir des données:
$ ram_list = get_the_term_list ($ post-> ID, 'ram', 'RAM Option (s): ',', ', "); $ hd_list = get_the_term_list ($ post-> ID,' hard_drive ','Option (s) de disque dur: ',', ', ");Plus d'information:
En savoir plus sur "get_the_term_list"
Étape 3 Formater les résultats à partir des classifications, le cas échéant
Vérifiez les résultats dans chacune des trois taxonomies possibles. S'ils existent, ajoutez-les à notre sortie, ainsi qu'un saut de ligne.
// Ajouter la liste des systèmes d'exploitation si cette publication a été étiquetée de la sorte si ("! = $ Os_list) $ taxo_text. =" $ Os_list
\ n "; // Ajouter une liste de RAM si cet article a été étiqueté de la sorte si ("! = $ ram_list) $ taxo_text. = "$ ram_list
\ n "; // Ajouter une liste HD si cette publication a été ainsi taguée si ("! = $ hd_list) $ taxo_text. = "$ hd_list
\ n ";
Étape 4 Afficher les résultats de la classification, le cas échéant
Vérifiez si les étapes ci-dessus ont abouti à des informations taxonomiques à la sortie. Si des informations sur la taxonomie existent, nous les afficherons dans un div de la classe "entry-utility".
// Affiche les informations de taxonomie s'il y en a // NOTE: Nous n'ouvrirons même pas une div s'il n'y a rien à y insérer. if ("! = $ taxo_text) ?>// endif ?>
Étape 5 Vérifiez vos résultats
Visitez une page de publication et vous devriez voir toutes les classifications de taxonomie personnalisées répertoriées ci-dessous..
Affichage d'une liste d'articles par classification de taxonomie
Maintenant, nos messages individuels nous indiquent les taxonomies personnalisées avec lesquelles ils ont été classés. Lorsqu'ils répertorient une classification taxonomique personnalisée, ils fournissent également un lien pour répertorier tous les articles de cette classification. Par exemple, cliquer sur le lien "Mac OS" à côté de "Systèmes d'exploitation" dans notre publication listera théoriquement tous les publications ayant la classification de système d'exploitation "Mac OS"..
Cependant, cela ne se produit pas avec la version 3 de WordPress. Nous devrons créer un fichier de modèle personnalisé pour afficher les archives de taxonomie afin que cela fonctionne. WordPress permet déjà aux visiteurs de voir tous les messages attribués à une catégorie particulière, ou tous les messages ayant reçu une balise donnée. Lorsque nous aurons terminé ici, nous pourrons également afficher tous les messages affectés à des classifications particulières dans nos taxonomies personnalisées..
Pour ce faire, nous devons créer le fichier modèle "taxonomy.php". WordPress essaiera d'utiliser ce fichier à tout moment pour lister les publications dans une taxonomie personnalisée..
Étape 1
Ouvrez le fichier "category.php", copiez son contenu et collez-le dans un nouveau fichier appelé "taxonomy.php". Enregistrez taxonomy.php dans le répertoire du thème. Par exemple, mon fichier taxonomy.php est:
[website_root] /wp/wp-content/themes/twentyten/taxonomy.php.
Étape 2 Obtenir des informations sur la classification taxonomique actuelle
Dans le fichier taxonomy.php, nous devons obtenir des informations sur la taxonomie répertoriée. Nous voudrons probablement le nom et la description (le cas échéant) de la classification sélectionnée.
Un peu moins de , ajoutez la ligne suivante:
$ term = get_term_by ('slug', get_query_var ('terme'), get_query_var ('taxonomie'));Cela récupère toutes les informations sur la taxonomie qui a appelé cette page et les renvoie sous forme d'objet dans la variable $ term. Par exemple, la classification "Mac OS" renvoie un objet en tant que tel:
Objet stdClass ([term_id] => 13 [name] => Mac OS [slug] => mac-os [term_group] => 0 [term_taxonomy_id] => 22 [taxonomy] => système_exploitation [description] => [parent] => 0 [compte] => 2)
Étape 3 Afficher le nom et la description de la classification
Nous souhaitons changer le nom de la page pour indiquer aux visiteurs ce qu'ils regardent. Depuis que nous avons commencé avec le modèle category.php, nous pouvons prendre la ligne utilisée pour imprimer le nom de la catégorie et la modifier un peu pour nous donner le nom de la page et, le cas échéant, sa description..
Changez la ligne suivante de category.php:
printf (__ ('Archives de la catégorie:% s', 'twentyten'), ''. single_cat_title (", false). '');
À lire comme suit:
printf (__ ('Postes classés sous:% s', 'vingtième'), ''. $ term_name. '');
Cela modifie le texte statique commençant la ligne, puis insère le nom de la classification. (Remarque: pour une localisation correcte, nous aurions besoin d'ajouter correctement le message languages / vingtten.pot dans le message languages / vingtten.pot. Cela sort du cadre de ce tutoriel, mais soyez conscient de la transgression ici.)
Ensuite, ajoutez ce qui suit:
if ("! = $ term_descr) echo"$ term_descr
\ n ";Si une description existe pour cette classification, elle sera affichée juste en dessous du titre.
Après avoir modifié taxonomy.php, visitez l’un de vos messages auquel une classification de taxonomie a été attribuée. En raison de notre travail précédent dans le fichier "single.php", la publication doit afficher des classifications personnalisées en dessous. Cliquez simplement sur l'une de ces classifications pour voir la liste de taxonomie au travail.
Conclusion
J'espère que ce tutoriel explique clairement ce que sont les taxonomies et vous a montré comment les utiliser dans WordPress 3 en tant qu'outil organisationnel puissant. J'espère fournir bientôt un tutoriel expliquant les types de publication WordPress personnalisés, leur relation étroite avec les taxonomies personnalisées et leur utilisation. Merci beaucoup d'avoir pris le temps de visiter Nettuts!