Como adicionar campos personalizados a um tipo de postagem personalizado?
-
-
Use http://wordpress.org/extend/plugins/types/Use http://wordpress.org/extend/plugins/types/
- 0
- 2012-07-30
- Ajay Patel
-
6 respostas
- votos
-
- 2011-05-13
Éprovavelmentemais complicado do que vocêpensa,eu olhariapara usar umframework:
Se você quiserescrever o seupróprio,aquiestão algunstutoriais 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 seriatão difícil.Eupensei que seriatão simples quanto adicionar um código de registro àsminhasfunções comofazemos comtipose taxonomias.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
-
Eu voumais uma resposta,masnão émuito complexa.O link ThinkVitamin.comfaz um ótimotrabalhoexplicando como adicionar osmetaboxese salvá-los.O link sltaylor.co.uk é umtutorialincrível sobre o uso de algumasgrandespráticas de codificação.Minhapalavra de cautela é cuidadoso ao usar ogancho `save_post`.Chama-seem temposestranhos.Certifique-se deter uma variável WP_DEBUGpara Truepara verpossíveiserros que surgem ao usá-lo.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
-
Apenas uma atualização que usei o link ThinkVitamine isso ajudoutremendamentee foi uma caminhada debolona configuração de 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
Adicionar/Editar O
Suportes
Argumento (Ao usarRegister_Post_Type
)paraincluir oCampospersonalizados
parapostar atela deedição de seutipopersonalizado Post Type:"suporta"=>variedade( 'título', 'editor', 'excerto', 'miniatura', 'Os campospersonalizados', 'revisões' )
fonte: https://codex.wordpress.org/using_custom_field#display_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
-
Vocêpodeporfavorexplicarpor queissopoderia resolver oproblema?Can you please explain why this could solve the issue?
- 2
- 2013-04-23
- s_ha_dum
-
Sim,issofunciona. Quem -1'ou a resposta.Vocêpodeporfavor,leve de volta? Cumprimentos,Yes, this works. Who -1'ed the answer. Can you please take it back? Regards,
- 1
- 2013-07-25
- Junaid Qadir
-
...eentão.........?...and then.........?
- 8
- 2016-10-26
- Mark
-
- 2014-01-30
Embora vocêtenha que adicionar alguma validação,esta açãonãoparece ser complicadapara a versão atual do WordPress.
Basicamente vocêprecisa de duasetapaspara adicionar um campopersonalizado a umtipopersonalizado:
- .
- Crie ummetabox quemantenha seu campopersonalizado
- Salve seu campopersonalizadopara obanco de dados
Estasetapas são descritasglobalmente aqui: http://wordpress.org/support/topic/is-it-possible-to-add-an-extra-field-to-a-custom-post-type
Exemplo:
Adicione um campopersonalizado chamado "Função"para umtipo depostagempersonalizado chamado "prefixo-teammembers".
primeiro adicione ometabox:
funçãoprefix_teammembers_metaboxes () { global $ wp_meta_boxes; add_meta_box ('postfunctiondiv',__ ('função'),'prefix_teammembers_metaboxes_html','prefix_teammembers','normal','high'); } add_action ('add_meta_boxes_prefix-teammembers','prefix_teammembers_metaboxes');
Se o seu adicionar oueditar um "prefixo-teammembers" o
add_meta_boxes_ {custom_post_type}
gancho é acionado. Ver http://codex.wordpress.org/function_reference/add_meta_box para oadd_meta_box ( )
função. Na chamada anteriorAdd_Meta_Box ()
éprefix_teammembers_metaboxes_html
,um retorno de chamadapara adicionar seu campo deformulário:funçãoprefix_teammembers_metaboxes_html () { postagemglobal; $ custom=get_post_custom ($post-e gt;id); $ Function=isset ($personalizado ["Função"] [0])? $ custom ["função"] [0]: ''; ? > & lt; Função: & lt;/lt;/gt; & lt;name deentrada="função" valor="& lt;? FUNÇÃO DE ECHO DE PHP;" > ">" > ">" > ">" > ">" > ">" > ">" > ">" > & lt;?php }
Na segundaetapa vocêtem seu campopersonalizadopara obanco de dados. Ao salvar o
Salvar_Post_ {Custom_Post_Type}
Gancho é acionado (desde V 3.7,veja: https://stackoverflow.com/questions/5151409/wordpress-save-post-act-For-Custom-posts ). Vocêpode ligarissopara salvar seu campopersonalizado:funçãoprefix_teammembers_save_post () { se (vazio ($ _post)) retorne;//por queprefix_teammembers_save_postfoi acionadopor adicionarnovo? postagemglobal; update_post_meta ($post-egt;id,"função",$ _post ["função"]); } 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 queprefix_teammembers_save_postfoi acionadopor Adicionarnovo?"Vocêjáencontrou uma resposta,eutambémestoutropeçandoem umgatilho defunçãoextra quenãoposso lembrar?"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
-
"Adicione um campopersonalizado chamado"função "para umtipo depostagempersonalizado chamado 'prefixo-teammembers'." O que significa "chamado"? Onome? O singular_name? O rótulo? Talvez seja a corda usada comoprimeiro argumentono Register_Post_Typefunção. Outalveznão sejaimportante o que étão longo quanto é 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
Existem váriospluginspara caixas demetanopersonalizadase campospersonalizados.Se você olharpara umplugin que se concentraem desenvolvedores,então você devetentar meta .É levee muitopoderoso.
Se vocêestiverprocurandopor umtutorial sobre comoescrever códigopara ummeta caixa/campospersonalizados,este é umbom começo.É aprimeiraparte de uma série quepode ajudá-lo a refinar o código afacilitar aestender.
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
Eu sei queestapergunta é antiga,masparamaisinformações sobre otópico
O WordPressfoi suporteintegradopara campospersonalizados.Se vocêtiver umtipo depostagempersonalizado,tudo que vocêprecisa éincluir 'Custom-Fields' dentro damatriz de suporte dentro do Register_Post_Type,conforme respondidopor @kubante
note queesta opçãotambémestá disponívelparatipos depostagensnativos,comopostse páginas que você sóprecisapara ligá-lo
Agora,este campopersonalizado émuitobásicoe aceita uma string como um valor.Emmuitos casos,tudobem,maspara camposmais complexos,eu aconselho que você usa oplugin 'Avançado Fields' Fields '
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' );
conhecimentoperfeito
// 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,entãoeu registrei algunstipos depostagempersonalizadose algumastaxonomias.Agora,para a vida demim,não consigo descobrir o código quepreciso adicionar um campopersonalizado aomeutipopersonalizado.
Eupreciso de uma quedae uma única área detexto de linha.Mastambémprecisoter campos separadospara ostipos depostagem.Então,digamos que o Type Onepossui 3 campose Post Type 2tem 4 campos,mas os campos são diferentes.
Qualquer dicas ajudaria queeu olheipara o códicee encontrei algo,masnãopossoentender o quepreciso adicionar aomeu
functions.php
arquivo