Adicionar campo personalizado à categoria
-
-
Possível duplicado de [quaisquerexemplos de adicionar campospersonalizadospara oeditor de categoria?] (http://wordpress.stackexchange.com/questions/6549/Y-EXAMples-f-Adding-Categry-the-ther-)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
-
Aquiestá umafolha defraude que uso aofazerisso.Tem osganchose filtros de ação relevantesem uma lista curta. 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 respostas
- votos
-
- 2016-06-29
Apartir do WordPress 4.4,o add_term_meta () ,o update_term_meta () e get_term_meta () Asfunçõesforam adicionadas. Isso significa que o códigofornecidopor MxMastamillspode ser atualizadopara usar uma abordagemmuitomenos hacky.
Aquiestá aminha atualização disso. Há apenas um campo comoeu queria adicionar umtítulopersonalizado,masfuncionará omesmoparatodos os campos que você deseja adicionar.
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');
-
Poucas coisasparanotar: Nogancho 'Edited_category`,`tag_id`estaránamatriz` $ _post`,nãono `$ _Get`.Também "add_term_meta"irá realmente adicionar umanovaentradaem vez de substituir umpossível antigo.Use `update_term_meta`em vez disso.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 Vocêpoderia corrigir a resposta de Luke-Simmons clicandonobotão Editar?Destaforma,todospodem usar omelhor código disponível,mesmo quenão codifiquemuitobem (designer aqui!).Obrigado!@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
-
Não salva os dadosnoformulárioIt doesn't save the data in the form
- 1
- 2017-05-11
- Dev
-
@Devele salvar dados,apenasnãomostra amenos que você altere $ _POSTpara $ _Getna segunda linha.@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
Este códigofunciona:
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'] ); });
-
Isso émenos desajeitado do que o outroe acabei de verificar com o 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 Menardforneceu umexemplo de como criare usar otermometaem seublog ...
Metapersonalizadaparanovastaxonomiasno WordPress 3.0 .Não hánenhumexemplo de criar atabela DB ou verificação
$_POST
vars é definido,então vocêprecisafazeressaspequenas coisas,masparece umabase de código decentepara construirnotopode ... :)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 ... :)
Eugostaria de adicionar campospersonalizados a uma determinada categoria. Uma categoriapossui apenas os seguintes campos:
Nome:
slug:
pai:
Descrição:
Comoeutenho um site da série de TV,quero adicionarmais alguns campos,quero algo assim,quandoeu crio umanova categoria (categoria=series)
Nome:
artista:
ano:
Tipo:
gênero:
Resumo:
slug:
pai:
Descrição:
e assimpor diante ...
Qualquer ajuda,porfavor? Agradecemos antecipadamente.