Ajouter des champs de taxonomie personnalisés lors de la création d'une nouvelle taxonomie
5 réponses
- votes
-
- 2011-09-23
Résolu!
add_action( 'create_category', 'save_extra_taxonomy_fields', 10, 2 );
Accessoirespour le plugin Category Meta .J'aitéléchargé diversméta-plugins de catégorie àpartir du repo WP,et celui-ci a lapossibilité d'ajouter lesmétadonnées sur l'écran Ajouter unnouveau.J'aifouillé dans le codeet j'aitrouvé l'insaisissable hook create_ {term}.
Solved!
add_action( 'create_category', 'save_extra_taxonomy_fields', 10, 2 );
Props to the Category Meta plugin. I downloaded various category meta plugins from the WP repo, and this one has the ability to add the meta data on the Add New screen. I dug through the code and found the elusive create_{term} hook.
-
- 2012-02-07
Jepense que letutoriel auquel vous avezfait référence étaitgénialet j'aibasé ce code sur lui. Il stocke lesmétaspour lataxonomie
menu_category
sur lesformulaires d'ajoutet d'éditionpour cettetaxonomie,et l'affiche dans leformulaire d'édition. L'entrée de latable d'options seraittaxomomy_24_metas
pour letermeid 24.add_action('menu_category_edit_form_fields','menu_category_edit_form_fields'); add_action('menu_category_add_form_fields','menu_category_edit_form_fields'); add_action('edited_menu_category', 'menu_category_save_form_fields', 10, 2); add_action('created_menu_category', 'menu_category_save_form_fields', 10, 2); function menu_category_save_form_fields($term_id) { $meta_name = 'order'; if ( isset( $_POST[$meta_name] ) ) { $meta_value = $_POST[$meta_name]; // This is an associative array with keys and values: // $term_metas = Array($meta_name => $meta_value, ...) $term_metas = get_option("taxonomy_{$term_id}_metas"); if (!is_array($term_metas)) { $term_metas = Array(); } // Save the meta value $term_metas[$meta_name] = $meta_value; update_option( "taxonomy_{$term_id}_metas", $term_metas ); } } function menu_category_edit_form_fields ($term_obj) { // Read in the order from the options db $term_id = $term_obj->term_id; $term_metas = get_option("taxonomy_{$term_id}_metas"); if ( isset($term_metas['order']) ) { $order = $term_metas['order']; } else { $order = '0'; } ?> <tr class="form-field"> <th valign="top" scope="row"> <label for="order"><?php _e('Category Order', ''); ?></label> </th> <td> <input type="text" id="order" name="order" value="<?php echo $order; ?>"/> </td> </tr> <?php }
I think the tutorial you referenced was great and I've based this code off it. It stores the metas for taxonomy
menu_category
on the add and edit forms for that taxonomy, and displays it in the edit form. The options table entry would betaxomomy_24_metas
for the term id 24.add_action('menu_category_edit_form_fields','menu_category_edit_form_fields'); add_action('menu_category_add_form_fields','menu_category_edit_form_fields'); add_action('edited_menu_category', 'menu_category_save_form_fields', 10, 2); add_action('created_menu_category', 'menu_category_save_form_fields', 10, 2); function menu_category_save_form_fields($term_id) { $meta_name = 'order'; if ( isset( $_POST[$meta_name] ) ) { $meta_value = $_POST[$meta_name]; // This is an associative array with keys and values: // $term_metas = Array($meta_name => $meta_value, ...) $term_metas = get_option("taxonomy_{$term_id}_metas"); if (!is_array($term_metas)) { $term_metas = Array(); } // Save the meta value $term_metas[$meta_name] = $meta_value; update_option( "taxonomy_{$term_id}_metas", $term_metas ); } } function menu_category_edit_form_fields ($term_obj) { // Read in the order from the options db $term_id = $term_obj->term_id; $term_metas = get_option("taxonomy_{$term_id}_metas"); if ( isset($term_metas['order']) ) { $order = $term_metas['order']; } else { $order = '0'; } ?> <tr class="form-field"> <th valign="top" scope="row"> <label for="order"><?php _e('Category Order', ''); ?></label> </th> <td> <input type="text" id="order" name="order" value="<?php echo $order; ?>"/> </td> </tr> <?php }
-
Nefonctionneplus. Veuillezmettre àjour.No longer works. Please update.
- 0
- 2017-05-11
- Dev
-
- 2017-02-14
Vouspouvez ajouter un champpersonnalisé à l'écran d'ajout d'unnouveauterme à lapage via les crochets suivants:
- {taxonomy_name} _add_form_fields
- {taxonomy_name} _edit_form_fields
- edited_< {nom_taxonomie}[
- create_
You can add custom field to the add new term page screen through following hooks:
- {taxonomy_name}_add_form_fields
- {taxonomy_name}_edit_form_fields
- edited_{taxonomy_name}
- create_{taxonomy_name}
-
Le lienest cassé!Link is broken!
- 0
- 2019-05-08
- Jimmy Adaro
-
- 2012-12-30
add_filter('created_term', 'update_{custom_taxonomy}_fields'); // you can name your callback function as you like function update_{custom_taxonomy}_fields($term_id) { if($_POST['taxonomy'] == '{custom_taxonomy}'): // a simple check to see if is you tax //do your update (I prefer in options table, but you can do it in any way you`d like) endif; }
si vous voulez un hookplusgénéral,vouspouvez utiliser le "created_term" (aumoins àpartir de 3.4)
add_filter('created_term', 'update_{custom_taxonomy}_fields'); // you can name your callback function as you like function update_{custom_taxonomy}_fields($term_id) { if($_POST['taxonomy'] == '{custom_taxonomy}'): // a simple check to see if is you tax //do your update (I prefer in options table, but you can do it in any way you`d like) endif; }
if you want a more general hook, you can use the "created_term" (at least from 3.4)
-
- 2011-11-28
Vouspouvez opterpour leplugin taxonomymangager .Vouspouvez ajouter unenouvelletaxonomie,ainsi que des champspersonnalisés à lataxonomie choisie (parexemple,champ d'image)
You may go for taxonomy mangager plugin. You can add a new taxonomy,plus add custom fields to the chosen taxonomy ( eg image field)
Modifier: Remarqueimportantepour WordPress v4.4 àpartir de
Cette question a utilisé uneexcellente solution de contournementpour l'absence demétaen terme réel dans les anciennes versions de WordPress,mais depuis la sortie de WordPress v4.4, letermeméta réel a étéintroduit ,et c'est certainement la voie à suivremaintenant.
Voici un article qui ressemble comme unbonpoint de départpour laméta destermes dans WordPress 4.4+
Je laisse cette questionen suspens carellepourraitencore être utilepour quelqu'un qui a affaire à un codeplus ancien,maisje voulais ajouter lanote ci-dessus afin que les développeurs qui commencent sur denouvellesimplémentations dutermemeta soient sur labonne voie.
Fin de lamodification
J'aiputirerparti de ce supertutorielen @Bainternet afin d'ajouter des champspersonnaliséspour lestaxonomies. J'aipeaufiné lebalisageet ajouté un rappel séparépour ajouter des champs à lapage d'administration "Ajouter unenouvelle catégorie". Mon codeest à lafin de cette question.
J'ai cependant rencontré unproblème; l'entrée de champpersonnalisé apparaît sur lapage d'ajout d'unenouvelle catégorie,mais le champn'estpasenregistré.
J'ai remarqué que lapage d'ajout d'unenouvelletaxonomie utilise ajax,et celapourraitfairepartie duproblème. J'aiessayé de désactiver JSet je rencontretoujours lemêmeproblème. J'ai creusé autour dunoyau à la recherche d'un crochet,maisje n'entrouvepas. Ilexiste différentstutoriels sur lenet,maisils semblenttous s'appuyer sur l'écran d'édition de lataxonomiepourfaire leursenchères.
Avez-vous desidéespour que celafonctionne?