Pour un projet, je me suis retrouvée à devoir rajouter des champs custom dans une catégorie. Seulement voilà, même l’excellent Advanced Custom Fields (ACF) ne peut pas rajouter de champs au catégorie…

Donc j’ai finis par mettre la main sur une classe PHP qui permet d’ajouter des champs sur les taxonomies WordPress.

Inclure les fichiers

Transférez sur votre FTP les fichiers que vous trouverez ici.

Puis, insérez un bout de code dans le fichier functions.php

//include the main class file
require_once("Tax-meta-class/Tax-meta-class.php");

Une fois que la classe est incluse dans votre fichier de fonctions, il faudra paramétrer le champs personnalisé que vous souhaitez ajouter avec les paramètres suivants :

//configure taxonomy custom fields
$config = array(
	'id' => 'demo_meta_box', // meta box id, unique per meta box
	'title' => 'Demo Meta Box', // meta box title
	'pages' => array('category'), // taxonomy name, accept categories, post_tag and custom taxonomies
	'context' => 'normal', // where the meta box appear: normal (default), advanced, side; optional
	'fields' => array(), // list of meta fields (can be added by field arrays)
	'local_images' => false, // Use local or hosted images (meta box images for add/remove)
	'use_with_theme' => false //change path if used with theme set to true, false for a plugin or anything else for a custom path(default false).
);

 

Initialiser le champs personnalisé

// Initiate your taxonomy custom fields
$my_meta = new Tax_Meta_Class($config);

 

Ajouter un champs personnalisé

//text field
$my_meta->addText('text_field_id',array('name'=> 'Mon champ texte'));
//textarea field
$my_meta->addTextarea('textarea_field_id',array('name'=> 'Ma zone de texte'));

Pour en savoir plus sur tous les types de champs, je vous laisse les consulter sur le site du développeur.

// Don't Forget to Close up the meta box deceleration
//Finish Taxonomy Extra fields Deceleration
$my_meta->Finish();

Quand vous avez inclus, paramétré et ajouté les champs que vous vouliez, il ne faudra pas oublier d’arrêter le processus.

 

Utilisation front-end

Pour utiliser les informations collectées dans votre champs personnalisé, il ne reste qu’à l’appeler de la manière suivante :

$saved_data = get_tax_meta($term_id,'text_field_id');
echo $saved_data;

Sources

Et voilà ! En espérant avoir été utile ^^