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"]);

}
?>