Aggiungi un campo personalizzato alla Categoria
-
-
possibile duplicato di [Eventualiesempi di aggiunta di campipersonalizzati all'editor di categorie?] (http://wordpress.stackexchange.com/questions/6549/any-examples-of-adding-custom-fields-to-the-category-editor)possible duplicate of [Any examples of adding custom fields to the category editor?](http://wordpress.stackexchange.com/questions/6549/any-examples-of-adding-custom-fields-to-the-category-editor)
- 0
- 2011-02-08
- Jan Fabry
-
Ecco un cheat sheet che uso quando lofaccio.Hagli hooke ifiltri di azionepertinentiin unbreveelenco. http://www.charlestonsw.com/adding-custom-fields-to-the-wordpress-category-interface/Here is a cheat sheet I use when doing this. It has the relevant action hooks & filters in one short list. http://www.charlestonsw.com/adding-custom-fields-to-the-wordpress-category-interface/
- 0
- 2013-02-03
- Lance Cleveland
-
3 risposta
- voti
-
- 2016-06-29
Apartire da Wordpress 4.4, add_term_meta () , update_term_meta () e get_term_meta () . Ciò significa cheil codicefornito da MxmastaMillspuòessere aggiornatoper utilizzare un approcciomoltomeno hacker.
Eccoilmio aggiornamento. C'è solo un campoperché volevo aggiungere untitolopersonalizzato,mafunzionerà allo stessomodopertuttii campi che desideri aggiungere.
function addTitleFieldToCat(){ $cat_title = get_term_meta($_POST['tag_ID'], '_pagetitle', true); ?> <tr class="form-field"> <th scope="row" valign="top"><label for="cat_page_title"><?php _e('Category Page Title'); ?></label></th> <td> <input type="text" name="cat_title" id="cat_title" value="<?php echo $cat_title ?>"><br /> <span class="description"><?php _e('Title for the Category '); ?></span> </td> </tr> <?php } add_action ( 'edit_category_form_fields', 'addTitleFieldToCat'); function saveCategoryFields() { if ( isset( $_POST['cat_title'] ) ) { update_term_meta($_POST['tag_ID'], '_pagetitle', $_POST['cat_title']); } } add_action ( 'edited_category', 'saveCategoryFields');
As of Wordpress 4.4, the add_term_meta(), the update_term_meta() and get_term_meta() functions have been added. This means that the code as provided by MxmastaMills can be updated to use a far less hacky approach.
Here is my update of it. There is only one field as I wanted to add a custom title, but it'll work the same for all the fields you want to add.
function addTitleFieldToCat(){ $cat_title = get_term_meta($_POST['tag_ID'], '_pagetitle', true); ?> <tr class="form-field"> <th scope="row" valign="top"><label for="cat_page_title"><?php _e('Category Page Title'); ?></label></th> <td> <input type="text" name="cat_title" id="cat_title" value="<?php echo $cat_title ?>"><br /> <span class="description"><?php _e('Title for the Category '); ?></span> </td> </tr> <?php } add_action ( 'edit_category_form_fields', 'addTitleFieldToCat'); function saveCategoryFields() { if ( isset( $_POST['cat_title'] ) ) { update_term_meta($_POST['tag_ID'], '_pagetitle', $_POST['cat_title']); } } add_action ( 'edited_category', 'saveCategoryFields');
-
Poche cose danotare:nell'hook `edited_category`,`tag_ID` sarànell'array `$ _POST`,nonin` $ _GET`.Inoltre `add_term_meta` aggiungeràeffettivamente unanuova voceinvece di sovrascrivere unapossibile vecchia.Usainvece `update_term_meta`.Few things to note: in the `edited_category` hook, `tag_ID` will be in the `$_POST` array, not in the `$_GET`. Also `add_term_meta` will actually add a new entry instead of overriding a possible old one. Use `update_term_meta` instead.
- 2
- 2016-10-02
- Martin Dimitrov
-
@MartinDimitrov Potresti correggere la risposta di luke-simmonsfacendo clic sulpulsante dimodifica?In questomodotuttipossono utilizzareilmiglior codice disponibile,anche chinon codificamoltobene (designer qui!).Grazie!@MartinDimitrov Could you fix luke-simmons's answer by clicking on edit button? This way everyone can use the best code available, even who does not code very well (designer here!). Thank you!
- 0
- 2016-11-08
- Hugo
-
Non salvai datinelmoduloIt doesn't save the data in the form
- 1
- 2017-05-11
- Dev
-
@Dev salvai dati,semplicementenon limostra ameno chetunonmodifichi $ _POSTin $ _GETnella seconda riga.@Dev it does save data, it just don't show it unless you change $_POST to $_GET in second line.
- 0
- 2018-08-24
- banesto
-
- 2018-01-14
Questo codicefunziona:
add_action ( 'category_edit_form_fields', function( $tag ){ $cat_title = get_term_meta( $tag->term_id, '_pagetitle', true ); ?> <tr class='form-field'> <th scope='row'><label for='cat_page_title'><?php _e('Category Page Title'); ?></label></th> <td> <input type='text' name='cat_title' id='cat_title' value='<?php echo $cat_title ?>'> <p class='description'><?php _e('Title for the Category '); ?></p> </td> </tr> <?php }); add_action ( 'edited_category', function( $term_id ) { if ( isset( $_POST['cat_title'] ) ) update_term_meta( $term_id , '_pagetitle', $_POST['cat_title'] ); });
This code works:
add_action ( 'category_edit_form_fields', function( $tag ){ $cat_title = get_term_meta( $tag->term_id, '_pagetitle', true ); ?> <tr class='form-field'> <th scope='row'><label for='cat_page_title'><?php _e('Category Page Title'); ?></label></th> <td> <input type='text' name='cat_title' id='cat_title' value='<?php echo $cat_title ?>'> <p class='description'><?php _e('Title for the Category '); ?></p> </td> </tr> <?php }); add_action ( 'edited_category', function( $term_id ) { if ( isset( $_POST['cat_title'] ) ) update_term_meta( $term_id , '_pagetitle', $_POST['cat_title'] ); });
-
Questo èmenogoffo dell'altroe l'ho appena verificato con WordPress 5.2.2This is less clumsy than the other one and I just verified it with WordPress 5.2.2
- 0
- 2019-07-25
- nico gawenda
-
- 2011-02-07
Paul Menard hafornito unesempio di come crearee utilizzareilmeta deitermininel suoblog ...
Metapersonalizzatapernuovetassonomiein WordPress 3.0 .Non c'è alcunesempio di creazione dellatabella DB o di controllo delle
$_POST
varsimpostate,quindi dovraifare questepiccole cose da solo,ma sembra unabase di codice decente su cui costruiredi ... :)Paul Menard provided an example of how to create and use term meta in his blog...
Custom meta for new taxonomies in WordPress 3.0.There's no example of creating the DB table or checking
$_POST
vars are set, so you'll need to do those little things yourself, but it looks like a decent code base to build on top of ... :)
Vorrei aggiungere campipersonalizzati a una determinata categoria. Una categoria ha soloi seguenti campi:
Nome:
Slug:
Genitore:
Descrizione:
Dato che ho un sito di serie TV,voglio aggiungere altri campi,voglio qualcosa di simile,quando creo unanuova categoria (Categoria=Serie)
Nome:
Artista:
Anno:
Tipo:
Genere:
Riepilogo:
Slug:
Genitore:
Descrizione:
E così via ...
Qualche aiutoperfavore? Graziein anticipo.