The Hello Bar is a simple web toolbar that engages users and communicates a call to action.

03

Sep

Custom Fields em 5 minutos


COMO?! em 5min? sim :) em 5min, a coisa mais linda do universo ;)

Bom, pra facilitar a vida, segue codigo abaixo comentado :D

<?php
add_action(“admin_init”, “admin_init”);

//adicionar a function admin_init() que inicializa os custom fields ao admin do wordpress

add_action(‘save_post’, ‘save_fields’);
// aqui determinamos uma ação para que quando salvar o post, ou atualizar, ele execute a function save_fields()

function admin_init(){
add_meta_box(“featured-meta”, “Custom fields doidos “, “meta_options”, “post”, “normal”, “high”);

// aqui temos nossa função que cria a caixa de campo customizavel,
// temos o nome dela(“featured-meta”), temos o titulo que aparecerá na caixa no post(“Custom fields doidos”),
// em “meta_options” ele chama as opções da função meta_options() logo abaixo, determinamos que iram aparecer somente em “post”
// em “normal” podemos determinar se será “normal” (aparece abaixo do editor de textos) ou “side” que aparece ali onde
// ficam categorias e tals :) simples não?
}

function meta_options(){
// yay :) agora em meta_options() pegamos todos campos que queremos ou criaremos e colocaremos em suas respectivas variaveis:
global $post, $meta_boxes;
$custom = get_post_custom($post->ID);

$field = $custom["field"][0]; //crie mais $mais uma = $custom["maisuma"][0], sempre com 0 no final ok? porque assim ele pega o valor dentro do array e não faz merda :p
?>
<div><label>Field:</label><br/><input name=”modelo” value=”<?php echo $field; ?>” /></div>
// pra mim a parte mais divertida, personalizar essa parte fica a seu criterio, eu sempre personalizo, enfim, html forms :) se você tá lendo isso você sabe fazer um :p só utilize <?php echo $nomedofield;?> pra pintar os valores aonde quer :)

<?php
}
function save_fields(){
global $post;
update_post_meta($post->ID, “field”, $_POST["field"]);

// finalmente a parte pra salvar os fields, bom o codigo se auto-explica, mais vai ae uma explicação simples
// update_post_meta($id, $metaname, $metavalue), onde $id é o ID do post, $metaname é o nome que vamos utilizar lá no nosso post depois pra recuperar esse valor e $metavalue o valor do campo
}
?>

OKAY!!!! depois de mil anos terminamos :p mentira, em 5 minutos se faz isso, a leitura que é demorada ;)

como recuperar iss depois no meu template?

<?php echo get_post_meta($post->ID, “field”, true);?>
ou você pode colocar o valor em uma variavel e manipular da maneira que quiser :) use sua imaginação e compartilhe seu conhecimento e experiências aqui nos comentários :D

Código final sem os cometários:

<?php
add_action(“admin_init”, “admin_init”);
add_action(‘save_post’, ‘save_fields’);

function admin_init(){
add_meta_box(“featured-meta”, “Custom fields doidos “, “meta_options”, “post”, “normal”, “high”);

}

function meta_options(){
global $post, $meta_boxes;
$custom = get_post_custom($post->ID);

$field = $custom["field"][0];
?>
<div><label>Field:</label><br/><input name=”modelo” value=”<?php echo $field; ?>” /></div>

<?php
}
function save_fields(){
global $post;
update_post_meta($post->ID, “field”, $_POST["field"]);

}
?>


Sobre Pedro Costa Neves

Webdesigner, Wordpress Ninja, fundador do http://persocon.org e do http://geek-candy.com. Sócio, Co-fundador, Diretor de Arte, Web Developer em !Drop Studio e está procurando emprego em Chapecó se alguem souber avise-me. Você pode entrar em contato comigo através da página de contato neste site ou pelo email neo[at]persocon.org.

  • http://dldesign.myartsonline.com/ Douglas

    Bom post…

    [Reply]