Come aggiungere campi personalizzati a un tipo di articolo personalizzato?
-
-
Usa http://wordpress.org/extend/plugins/types/Use http://wordpress.org/extend/plugins/types/
- 0
- 2012-07-30
- Ajay Patel
-
6 risposta
- voti
-
- 2011-05-13
Questo èprobabilmentepiù complicato di quantopensi,vorreiesaminare l'utilizzo di unframework:
Se vuoi scriverne unotuo,ecco alcunitutorial decenti:
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:
-
davvero sarebbe così difficile.Hopensato che sarebbe stato semplice come aggiungere un codice di registro allemie funzioni comefacciamo coni tipi diposte letassonomie.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
-
Più una questa risposta,manon ètroppo complessa.Il collegamentothinkvitamin.comfa un ottimo lavoro spiegando come aggiungerei metaboxe salvarli.Il collegamento sltaylor.co.uk è unfantasticotutorial sull'utilizzo di alcune ottimepratiche di codifica.Lamiaparola di cautela èfare attenzione quando si usa l'hook `save_post`.Si chiamain momenti strani.Assicurati di avere la variabile WP_DEBUGimpostata sutrueper vederei potenzialierrori che si verificano durante l'utilizzo.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 un aggiornamento che ho usatoil linkthinkvitamine che ha aiutatomoltissimoed è stata unapasseggiatanella creazione di campipersonalizzatiJust 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
Aggiungi/modifica l'argomento
supports
(mentre usiregister_post_type
)perincludereicustom-fields
nella schermata dimodifica delpost deltuotipo dipostpersonalizzato:'supports' => array( 'title', 'editor', 'excerpt', 'thumbnail', 'custom-fields', 'revisions' )
Fonte: 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
-
Puoi spiegareperché questopotrebbe risolvereilproblema?Can you please explain why this could solve the issue?
- 2
- 2013-04-23
- s_ha_dum
-
Sì,funziona. Chi ha dato la risposta.Puoi riprenderloperfavore? Saluti,Yes, this works. Who -1'ed the answer. Can you please take it back? Regards,
- 1
- 2013-07-25
- Junaid Qadir
-
...epoi.........?...and then.........?
- 8
- 2016-10-26
- Mark
-
- 2014-01-30
Anche se dovresti aggiungere unpo 'di convalida,questa azionenon sembraessere complicataper la versione corrente di WordPress.
Fondamentalmente sononecessari duepassaggiper aggiungere un campopersonalizzato a untipo di articolopersonalizzato:
- Crea unmetabox che contengailtuo campopersonalizzato
- Salvailtuo campopersonalizzatonel database
Questipassaggi sono descritti a livelloglobale qui: http://wordpress.org/support/topic/is-it-possible-to-add-an-extra-field-to-a-custom-post-type
Esempio:
Aggiungi un campopersonalizzato chiamato "funzione" a untipo dipostpersonalizzato denominato "prefix-teammembers".
Perprima cosa aggiungiilmetabox:
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' );
Se aggiungi omodifichi un "prefix-teammembers",viene attivato l'hook
add_meta_boxes_{custom_post_type}
. Vedere http://codex.wordpress.org/Function_Reference/add_meta_box peradd_meta_box()
funzione. Nella chiamataprecedente diadd_meta_box()
èprefix_teammembers_metaboxes_html
,una richiamataper aggiungereil campo delmodulo: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 }
Nel secondopassaggio haiiltuo campopersonalizzatonel database. Quando si salva l'hook
save_post_{custom_post_type}
viene attivato (dalla v 3.7,vedere: https://stackoverflow.com/questions/5151409/wordpress-save-post-action-for-custom-posts ). Puoi agganciarloper salvareiltuo campopersonalizzato: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' );
-
"perchéprefix_teammembers_save_post viene attivato da addnew?"haitrovato una risposta,sto ancheinciampando su untrigger difunzioneextra chenon riesco a ricordare?"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
-
"Aggiungi un campopersonalizzato chiamato 'funzione" a untipo di articolopersonalizzato chiamato'prefix-teammembers '. "Cosa significa" chiamato "? Ilnome? Il singular_name? L'etichetta? Forse è la stringa utilizzata comeprimo argomentoin register_post_typeoforsenonimporta cosa siapurché sia coerente."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
Esistono variplug-inpermetaboxe campipersonalizzati.Seguardi unpluginincentrato sugli sviluppatori,dovrestiprovare Meta Box .È leggeroe moltopotente.
Se stai cercando untutorial su come scrivere codiceper unmetabox/campipersonalizzati,allora questo è unbuoninizio.È laprimaparte di una serie chepotrebbe aiutarti aperfezionareil codiceper renderlopiùfacile daestendere.
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
So che questa domanda è vecchia,ma hobisogno di ulterioriinformazioni sull'argomento
WordPress hail supportointegratoperi campipersonalizzati.Se hai untipo dipostpersonalizzato,tutto ciò di cui haibisogno èincludere "custom-fields" all'interno dell'array di supporto all'interno di register_post_type come risposto da @kubante
Nota che questa opzione è disponibile ancheperi tipi dipostnativi comei poste lepagine,devi solo attivarla
Ora questo campopersonalizzato èmolto semplicee accetta una stringa come valore.Inmolti casi vabene,maper campipiù complessi,ti consiglio di utilizzareilplug-in "Campipersonalizzati avanzati"
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' );
Conoscenzaperfetta
// 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
Ok,quindi ho registrato alcunitipi dipostpersonalizzatie alcunetassonomie.Ora,per la vita dime,non riesco a capireil codice di cui hobisognoper aggiungere un campopersonalizzato almiotipo di articolopersonalizzato.
Hobisogno di unmenu a discesae di un'area ditesto a riga singola.Ma ho anchebisogno di avere campi separatiperi tipi dipost.Quindi,supponiamo cheiltipo dipost uno abbia 3 campie iltipo dipost 2 abbia 4 campimai campi sono diversi.
Eventuali suggerimenti aiuterebbero. Hoguardatoil codicee hotrovato qualcosa,manon riesco a dare un senso a ciò che devo aggiungere almiofile
functions.php