Magazine Internet

Créer une taxonomie

Par 4h18

gestion de fichiers et de sources

Après l’apéritif que représentait l’introduction à la taxonomie, je vous propose que nous passions au plat de résistance, à savoir la mise en œuvre sur votre site.

Avant de partir bille en tête dans les fichiers de votre installation, il est plus que judicieux de faire une sauvegarde de votre installation (base de données et fichiers du site).

Une fois cette sauvegarder faite, vous allez vous éviter des sueurs froides et un t-shirt tout mouillé sous les bras. Ce qui, pour bosser, n’est ps le plus confortable.

Nous allons donc intervenir tout de suite sur notre fichier functions.php, fichier que vous devriez trouver à la racine du dossier de votre thème. Sur votre repertoire ftp, ceci devrait donner un truc du genre :

www/wp-content/mon-joli-theme/functions.php

Si ce fichier n’existe pas, il suffit de le créer, puis, bien entendu, de l’envoyer sur votre installation.

Nos chers développeurs chez Automattic ont bien les choses. Pour créer une taxonomie, quelques lignes de codes suffisent.

La première partie du code va nous donner la possibilité de faire parler notre taxonomie en Français, pratique non ? Surtout si vous êtes de la branche des anglophobes. Les labels, ce sont donc les étiquettes.La création de notre taxonomie se fait en trois étapes :

  1. Nous signalons à WordPress qu’il va avoir du boulot avec add_action
  2. Nous préparons nos étiquettes
  3. Nous créons la taxonomie, avec register_taxonomy

Modifier le functions.php

<?php
//On annonce à WordPress que nous allons lui balancer du boulot.
//Notez que le second argument doit être exactement le nom de la fonction qui va créer vos taxonomies
add_action( 'init', 'create_my_taxonomies', 0 );

//Nous créons donc ici notre fonctions
function create_my_taxonomies() {

//La premiere partie concerne toutes étiquettes de notre taxonomie.
$labels = array(

//le nom de votre taxonomie, sans majuscule.
'name' => _x( 'mataxo', 'taxonomy general name' ),

//Le nom de votre taxonomie, au singulier
'singular_name' => _x( 'Nom du Plugin', 'taxonomy singular name' ),

//L'étiquette pour la recherche
'search_items' =>  __( 'Rechercher dans mataxo' ),

//Les termes les plus utilisées dans votre taxonomie
'popular_items' => __( 'Termes le plus souvent utilisé' ),

//Etiquette 'tout les termes'
'all_items' => __( 'Toutes mes mataxo' ),

//Item père (dans le cas d'une hierachisation)
'parent_item' => null,
'parent_item_colon' => null,

//Etiquette pour l'edition
'edit_item' => __( 'Editer mataxo' ),

//Etiquette pour la mise à jour
'update_item' => __( 'MAJ de mataxo' ),

//Etiquettes pour une nouvelle entrée
'add_new_item' => __( 'Ajouter un terme dans mataxo' ),
'new_item_name' => __( 'Nouveau terme' ),

//Etiquettes pour la saisie dans la page de rédaction
'separate_items_with_commas' => __( 'Separer les termes avec une virgule' ),
'add_or_remove_items' => __( 'Ajouter ou supprimer un terme de mataxo' ),
'choose_from_most_used' => __( 'Choisir parmi les plus utilisé' ),

//Etiquette de la metabox
'menu_name' => __( 'MaTaxo' ),
);

//Desormais, nous allons enregistrer notre taxonomie dans WordPress.
//Pour cela, nous utilisons >> register_taxonomy (nom de la taxo, se rattache à, array (instructions divrses) )

register_taxonomy('mataxo','post',array(

//La taxo est elle hierachique true / false (vrai /faux)
'hierarchical' => false,

//les etiquettes (définis ci-dessus)
'labels' => $labels,

//Doit on la rendre visible dans l'interface ?
'show_ui' => true,

//Peut on utiliser Query_var pour cette taxo ? true / false
'query_var' => true,

//Réecriture d'url, le slug etant le terme à utiliser, sans majuscule, sans espace, exemple : ma-taxo
'rewrite' => array( 'slug' => 'plugin' ),

));

} // fermeture de la fonction

Avant de copier/coller ce code et de balancer le tout sur votre serveur, je ne saurais trop vous conseiller de lire les commentaires, les lignes qui débutent par deux slashes. Elles vont vous aider à mieux comprendre à quoi serve chacune des instructions de cette fonction.

Si vous souahitez ajouter plusieurs taxonomies d’un bloc, il vous suffit de les ajouter au sein de la même fonctions, comme suit

add_action( 'init', 'create_my_taxonomies', 0 );
function create_my_taxonomies() {
 //----------------------------------------------
 //Premiere taxo
 //----------------------------------------------
 $labels = array(
 //....
 );
 register_taxonomy('mataxo','post',array(
 //...
 ));
 //----------------------------------------------
 //Seconde Taxo
 //----------------------------------------------
 $labels = array(
 //....
 );
 register_taxonomy('mataxo','post',array(
 //...
 ));
 //----------------------------------------------
 //----------------------------------------------
} // fermeture de la fonction

Si tout s’est bien passé…

Une fois votre fichier dûment renseigné, il ne vous reste plus qu’à l’envoyer sur votre serveur, et vous devriez voir apparaitre vos taxonomies.

Le menu articles avec nos taxonomies

Le menu articles avec nos taxonomies

Vous devriez également être en mesure de découvrir une ou plusieurs meta box dans la page de rédaction d’un article.

Les meta box des taxonomies

Les meta box des taxonomies

Dans un prochain article, nous verrons comment lier nos taxonomies et un ou plusieurs Custom Post Type.

Télécharger le fichier d’exemple.


Vous pourriez être intéressé par :

Retour à La Une de Logo Paperblog

Ces articles peuvent vous intéresser :

A propos de l’auteur


4h18 2683 partages Voir son profil
Voir son blog

l'auteur n'a pas encore renseigné son compte l'auteur n'a pas encore renseigné son compte

Dossiers Paperblog

Magazines