¿Cómo agregar campos personalizados a un tipo de publicación personalizada?
-
-
Utilice http://wordpress.org/extend/plugins/types/Use http://wordpress.org/extend/plugins/types/
- 0
- 2012-07-30
- Ajay Patel
-
6 respuestas
- votos
-
- 2011-05-13
Estoprobablemente seamás complicado de lo que crees,me gustaría usar unmarco:
Si quieresescribireltuyopropio,aquítienes algunostutoriales decentes:
This is probably more complicated than you think, I would look into using a framework:
If you want to write your own , here are some decent tutorials:
-
realmente sería así de difícil.Pensé que seríatan simple como agregar un código de registro amisfunciones,como hacemos con lostipos depublicaciones ytaxonomías.really it would be that hard. I thought it would be as simple as adding a register code to my functions like we do with post types and taxonomies.
- 1
- 2011-05-13
- xLRDxREVENGEx
-
Agregaré unaesta respuesta,peronoes demasiado compleja.Elenlacethinkvitamin.com hace ungrantrabajo alexplicar cómo agregar losmetaboxes yguardarlos.Elenlace sltaylor.co.ukes untutorialincreíble sobreel uso de algunasprácticas de codificaciónexcelentes.Mipalabra deprecauciónestener cuidado al usarelgancho `save_post`.Se llamaen momentosextraños.Asegúrese detener la variable WP_DEBUGestablecidaen verdaderapara ver losposibleserrores que surgen al usarla.I'll plus one this answer, but it's not too complex. The thinkvitamin.com link does a great job explaining how to add the metaboxes and save them. The sltaylor.co.uk link is an awesome tutorial on using some great coding practices. My word of caution is be careful when using the `save_post` hook. It's called at weird times. Make sure to have WP_DEBUG variable set to true in order to see potential errors that arise when using it.
- 1
- 2011-05-13
- tollmanz
-
Solo una actualización,utilicéelenlacethinkvitamin yeso ayudóenormemente yfuemuyfácil configurar campospersonalizadosJust an update i used the thinkvitamin link and that helped tremendously and it was a cake walk on setting up custom fields
- 2
- 2011-05-13
- xLRDxREVENGEx
-
- 2013-04-23
Agregue/editeel argumento
supports
(mientras usaregister_post_type
)paraincluir loscustom-fields
parapublicar lapantalla deedición de sutipo depublicaciónpersonalizada:'supports' => array( 'title', 'editor', 'excerpt', 'thumbnail', 'custom-fields', 'revisions' )
Fuente: https://codex.wordpress.org/Using_Custom_Fields#Displaying_Custom_Fields
Add/edit the
supports
argument ( while usingregister_post_type
) to include thecustom-fields
to post edit screen of you custom post type:'supports' => array( 'title', 'editor', 'excerpt', 'thumbnail', 'custom-fields', 'revisions' )
Source: https://codex.wordpress.org/Using_Custom_Fields#Displaying_Custom_Fields
-
¿Puedeexplicarpor quéestopodría resolverelproblema?Can you please explain why this could solve the issue?
- 2
- 2013-04-23
- s_ha_dum
-
Si,estofunciona. Quién dio la respuesta.¿Puedes devolverlo? Saludos,Yes, this works. Who -1'ed the answer. Can you please take it back? Regards,
- 1
- 2013-07-25
- Junaid Qadir
-
...yentonces.........?...and then.........?
- 8
- 2016-10-26
- Mark
-
- 2014-01-30
Aunque deberíatener que agregar algo de validación,esta acciónnoparece ser complicadapara la versión actual de WordPress.
Básicamente,necesita dospasospara agregar un campopersonalizado a untipo depublicaciónpersonalizada:
- Cree unmetabox que contenga su campopersonalizado
- Guarde su campopersonalizadoen labase de datos
Estospasos se describenglobalmente aquí: http://wordpress.org/support/topic/is-it-possible-to-add-an-extra-field-to-a-custom-post-type
Ejemplo:
Agregue un campopersonalizado llamado "función" a untipo depublicaciónpersonalizada llamado "prefix-teammembers".
Primero agregueelmetabox:
function prefix_teammembers_metaboxes( ) { global $wp_meta_boxes; add_meta_box('postfunctiondiv', __('Function'), 'prefix_teammembers_metaboxes_html', 'prefix_teammembers', 'normal', 'high'); } add_action( 'add_meta_boxes_prefix-teammembers', 'prefix_teammembers_metaboxes' );
Si agrega oedita un "prefijo-miembros delequipo",se activaelenlace
add_meta_boxes_{custom_post_type}
. Consulte http://codex.wordpress.org/Function_Reference/add_meta_box para obtenereladd_meta_box()
función. En la llamada anterior deadd_meta_box()
esprefix_teammembers_metaboxes_html
,una devolución de llamadapara agregar su campo deformulario:function prefix_teammembers_metaboxes_html() { global $post; $custom = get_post_custom($post->ID); $function = isset($custom["function"][0])?$custom["function"][0]:''; ?> <label>Function:</label><input name="function" value="<?php echo $function; ?>"> <?php }
Enel segundopaso,tiene su campopersonalizadopara labase de datos. Alguardarelgancho
save_post_{custom_post_type}
se activa (desde v 3.7,consulte: https://stackoverflow.com/questions/5151409/wordpress-save-post-action-for-custom-posts ). Puede conectarestoparaguardar su campopersonalizado:function prefix_teammembers_save_post() { if(empty($_POST)) return; //why is prefix_teammembers_save_post triggered by add new? global $post; update_post_meta($post->ID, "function", $_POST["function"]); } add_action( 'save_post_prefix-teammembers', 'prefix_teammembers_save_post' );
Although you should have to add some validation, this action does not seem to be complicated for the current version of WordPress.
Basically you need two steps to add a Custom Field to a Custom Post Type:
- Create a metabox which holds your Custom Field
- Save your Custom Field to the database
These steps are globally described here: http://wordpress.org/support/topic/is-it-possible-to-add-an-extra-field-to-a-custom-post-type
Example:
Add a Custom Field called "function" to a Custom Post Type called "prefix-teammembers".
First add the metabox:
function prefix_teammembers_metaboxes( ) { global $wp_meta_boxes; add_meta_box('postfunctiondiv', __('Function'), 'prefix_teammembers_metaboxes_html', 'prefix_teammembers', 'normal', 'high'); } add_action( 'add_meta_boxes_prefix-teammembers', 'prefix_teammembers_metaboxes' );
If your add or edit a "prefix-teammembers" the
add_meta_boxes_{custom_post_type}
hook is triggered. See http://codex.wordpress.org/Function_Reference/add_meta_box for theadd_meta_box()
function. In the above call ofadd_meta_box()
isprefix_teammembers_metaboxes_html
, a callback to add your form field:function prefix_teammembers_metaboxes_html() { global $post; $custom = get_post_custom($post->ID); $function = isset($custom["function"][0])?$custom["function"][0]:''; ?> <label>Function:</label><input name="function" value="<?php echo $function; ?>"> <?php }
In the second step you have your custom field to the database. On saving the
save_post_{custom_post_type}
hook is triggered (since v 3.7, see: https://stackoverflow.com/questions/5151409/wordpress-save-post-action-for-custom-posts). You can hook this to save your custom field:function prefix_teammembers_save_post() { if(empty($_POST)) return; //why is prefix_teammembers_save_post triggered by add new? global $post; update_post_meta($post->ID, "function", $_POST["function"]); } add_action( 'save_post_prefix-teammembers', 'prefix_teammembers_save_post' );
-
"¿Por quéprefix_teammembers_save_post se activa al agregarnuevo?"¿Haencontrado una respuesta,tambiénestoytropezando con un disparador defunción adicional quenopuedo recordar?"why is prefix_teammembers_save_post triggered by add new?" have you found an answer, i am also stumbling on a extra function trigger which i can't recall?
- 0
- 2015-02-18
- alex
-
"Agrega un campopersonalizado llamado"función "a untipo depublicaciónpersonalizada llamado"prefix-teammembers "." ¿Qué significa "llamado"? ¿Elnombre? ¿Elnombre_ singular? ¿Laetiqueta? Tal vez sea la cadena utilizada comoprimer argumentoen eltipo_post_registrofunción. Otal veznoimporta lo que sea siempre que sea consistente."Add a Custom Field called 'function" to a Custom Post Type called 'prefix-teammembers'." What does "called" mean? The name? The singular_name? The label? Maybe it's the string used as the first argument in the register_post_type function. Or maybe it doesn't matter what it is so long as it's consistent.
- 0
- 2019-10-07
- arnoldbird
-
- 2018-01-03
Hay varios complementosparametaboxespersonalizados y campospersonalizados.Si observa un complemento que se centraen los desarrolladores,entonces deberíaprobar Meta Box .Es ligero ymuypotente.
Siestábuscando untutorial sobre cómoescribir códigopara unmetabox/campospersonalizados,entonces este es unbuen comienzo.Es laprimeraparte de una serie quepodría ayudarlo a refinarel códigoparafacilitar suextensión.
There are various plugins for custom meta boxes and custom fields. If you look at a plugin that focuses on developers, then you should try Meta Box. It's lightweight and very powerful.
If you're looking for a tutorial on how to write code for a meta box / custom fields, then this is a good start. It's the first part of a series that might help you refine the code to make it easy to extend.
-
- 2020-08-12
Sé queestapreguntaes antigua,peropara obtenermásinformación sobreeltema
WordPresstiene soporteintegradopara campospersonalizados.Sitiene untipo depublicaciónpersonalizada,todo lo quenecesitaesincluir 'campospersonalizados' dentro de lamatriz de soporte dentro de register_post_type como respondió @kubante
Tengaen cuenta queesta opcióntambiénestá disponibleparatipos depublicacionesnativas,comopublicaciones ypáginas,solotiene que activarla
Ahora Este campopersonalizadoesmuybásico y acepta una cadena como valor.Enmuchos casosesoestábien,peropara camposmás complejos,le aconsejo que useel complemento 'Campospersonalizados avanzados'
I know this question is old but for more info about the topic
WordPress has built-in support for custom fields. If you have a custom post type then all you need is to include 'custom-fields' inside the support array inside of register_post_type as answered by @kubante
Note that this option is also available for native post types like posts and pages you just need to turn it on
Now This custom field is very basic and accepts a string as a value. In many cases that's fine but for more complex fields, I advise that you use the 'Advanced Custom Fields' plugin
-
- 2017-10-28
// slider_metaboxes_html , function for create HTML function slider_metaboxes( ) { global $wp_meta_boxes; add_meta_box('postfunctiondiv', __('Custom link'), 'slider_metaboxes_html', 'slider', 'normal', 'high'); } //add_meta_boxes_slider => add_meta_boxes_{custom post type} add_action( 'add_meta_boxes_slider', 'slider_metaboxes' );
Conocimientoperfecto
// slider_metaboxes_html , function for create HTML function slider_metaboxes( ) { global $wp_meta_boxes; add_meta_box('postfunctiondiv', __('Custom link'), 'slider_metaboxes_html', 'slider', 'normal', 'high'); } //add_meta_boxes_slider => add_meta_boxes_{custom post type} add_action( 'add_meta_boxes_slider', 'slider_metaboxes' );
Perfect knowledge
Bien,he registrado algunostipos depublicacionespersonalizadas y algunastaxonomías.Ahora,pormi vida,nopuedo descifrarel código quenecesitopara agregar un campopersonalizado ami tipo depublicaciónpersonalizada.
Necesito unmenú desplegable y un área detexto de una sola línea.Perotambiénnecesitotener campos separadospara lostipos depublicaciones.Entonces,digamos queeltipo depublicación unotiene 3 campos yeltipo depublicación 2tiene 4 campos,pero los campos son diferentes.
Cualquier consejome ayudaría. Hemiradoel códice yencontré algo,peronopuedoentender lo quenecesito agregar ami archivo
functions.php