Agregar campo personalizado a la categoría
-
-
posible duplicado de [¿Algúnejemplo de cómo agregar campospersonalizados aleditor de categorías?] (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
-
Aquí hay una hoja detrucos que utilizo al haceresto.Tiene losfiltros yganchos de acción relevantesen una lista corta. 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 respuestas
- votos
-
- 2016-06-29
Apartir de Wordpress 4.4, add_term_meta () ,el update_term_meta () y get_term_meta () . Esto significa queel códigoproporcionadopor MxmastaMills sepuede actualizarpara usar unenfoquemuchomenos hacky.
Aquíestámi actualización. Solo hay un campoporque quería agregar untítulopersonalizado,perofuncionaráigualparatodos los campos que desee agregar.
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');
-
Algunas cosas ateneren cuenta:en elgancho `edited_category`,`tag_ID`estaráen el arreglo `$ _POST`,noen el` $ _GET`.Además,`add_term_meta` agregará unanuevaentradaen lugar de anular unaposible anterior.Utilice `update_term_meta`en su lugar.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 ¿Podrías arreglar la respuesta de luke-simmons haciendo clicen elbotóneditar?Deestamanera,todospueden usarelmejor código disponible,incluso quienesno codificanmuybien (¡diseñador aquí!).¡Gracias!@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
-
Noguarda los datosen elformulario.It doesn't save the data in the form
- 1
- 2017-05-11
- Dev
-
@Devguarda datos,simplementeno losmuestra amenos que cambie $ _POST a $ _GETen la segunda línea.@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'] ); });
-
Estoesmenostorpe queel otro y lo acabo de verificar 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 Menardproporcionó unejemplo de cómo crear y usarmeta detérminosen sublog ...
Metapersonalizadaparanuevastaxonomíasen WordPress 3.0 .No hayningúnejemplo de creación de latabla debase de datos o verificación de que las variables
$_POST
estén configuradas,por lo que deberá haceresaspequeñas cosas ustedmismo,peroparece unabase de código decentepara construiren laparte superiorde ... :)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 ... :)
Megustaría agregar campospersonalizados a una categoría determinada. Una categoría solotiene los siguientes campos:
Nombre:
Babosa:
Padre:
Descripción:
Comotengo un sitio de series detelevisión,quiero agregar algunos camposmás,quiero algo comoesto,cuando creo unanueva categoría (Categoría=Serie)
Nombre:
Artista:
Año:
Tipo:
Género:
Resumen:
Babosa:
Padre:
Descripción:
Y así sucesivamente ...
¿Alguna ayudaporfavor? Gracias de antemano.