Your cart is currently empty!
Lorsqu’il s’agit d’ajouter des champs méta personnalisés à une taxonomie dans WordPress, le processus nécessite généralement trois fonctions distinctes : une pour ajouter le champ à la page “Ajouter un nouveau terme”, une pour ajouter le champ à la page “Modifier le terme”, et une pour enregistrer les valeurs du champ personnalisé sur les deux pages.
Voici comment réaliser cela avec un exemple pratique :
<?/**
* Summary.
*
* Description : Ajout de champs méta personnalisés aux taxonomies
*
* @since Version 1.0.0
*/
// Fonction pour ajouter un champ méta personnalisé à la page "Ajouter un nouveau terme"
function jconcept_taxonomy_add_new_meta_field() {
?>
<div class="form-field">
<label for="term_meta[custom_term_meta]"><?php _e('Exemple de champ méta', 'jconcept'); ?></label>
<input type="text" name="term_meta[custom_term_meta]" id="term_meta[custom_term_meta]" value="">
<p class="description"><?php _e('Entrez une valeur pour ce champ', 'jconcept'); ?></p>
</div>
<?php
}
add_action('category_add_form_fields', 'jconcept_taxonomy_add_new_meta_field', 10, 2);
// Fonction pour ajouter un champ méta personnalisé à la page "Modifier le terme"
function jconcept_taxonomy_edit_meta_field($term) {
$t_id = $term->term_id;
$term_meta = get_option("taxonomy_$t_id");
?>
<tr class="form-field">
<th scope="row" valign="top"><label for="term_meta[custom_term_meta]"><?php _e('Exemple de champ méta', 'jconcept'); ?></label></th>
<td>
<input type="text" name="term_meta[custom_term_meta]" id="term_meta[custom_term_meta]" value="<?php echo esc_attr($term_meta['custom_term_meta']) ? esc_attr($term_meta['custom_term_meta']) : ''; ?>">
<p class="description"><?php _e('Entrez une valeur pour ce champ', 'jconcept'); ?></p>
</td>
</tr>
<?php
}
add_action('category_edit_form_fields', 'jconcept_taxonomy_edit_meta_field', 10, 2);
// Fonction pour enregistrer les valeurs du champ personnalisé
function save_taxonomy_custom_meta($term_id) {
if (isset($_POST['term_meta'])) {
$t_id = $term_id;
$term_meta = get_option("taxonomy_$t_id");
$cat_keys = array_keys($_POST['term_meta']);
foreach ($cat_keys as $key) {
if (isset($_POST['term_meta'][$key])) {
$term_meta[$key] = $_POST['term_meta'][$key];
}
}
update_option("taxonomy_$t_id", $term_meta);
}
}
add_action('edited_category', 'save_taxonomy_custom_meta', 10, 2);
add_action('create_category', 'save_taxonomy_custom_meta', 10, 2);
Ces fonctions ajoutent un champ méta personnalisé à la page “Ajouter un nouveau terme” et à la page “Modifier le terme” pour la taxonomie de catégorie par défaut. Assurez-vous d’ajuster le code en fonction de votre taxonomie spécifique. Ces champs méta peuvent être utilisés pour stocker des informations personnalisées associées à chaque terme de taxonomie.