Adicionando meta boxes ao WordPress

Olá todos, este é o meu primeiro post aqui no pBlog. Hoje vou mostrar como adicionar caixas de informações (Meta boxes) adicionais do post. Este recurso serve para todas as versões acima da 2.5, quem possuir a versão 3.0 ou superior pode exibir metaboxes de acordo com o tipo de post escolhido

O que são Meta boxes?

Meta boxes são caixas que aparecem na criação de um post elas permitem adicionar informações padronizadas quando estamos criando um post.

Mãos a obra

Em seu arquivo functions.php do seu template adicione o seguinte código:

add_action('admin_init','metaboxes');</code>

function metaboxes(){

    add_meta_box( 'ingredientes_meta', 'Ingredientes' , 'ingredientes_call', 'post', 'normal', 'low' );

}

Abaixo a descrição de cada argumento:

‘ingredientes_meta’: nome interno do meta box;

‘Ingredientes’: Titulo do meta box. Será exibido na página de criação/edição do post;

‘ingredientes_call’: Função que imprime os campos personalizados;

‘post’: Onde o meta box deverá ser exibido, pode ser o nome do tipo de post;

‘normal’: Argumento opcional, define onde devera ser exibido, pode ser 'normal', 'advanced', or 'side';

‘low’: Argumento opcional, define a posição do meta box, em ‘low’ ele adiciona ao lado lá em baixo, em ‘high’ ele adiciona embaixo do editor de texto;

Este código abaixo, imprime os campos, o nome da função é igual ao terceiro argumento da função acima.

function ingredientes_call(){
   echo '<label for="ingredientes_textarea">';
   echo '<textarea name="ingredientes_textarea"></textarea>';
}

No código acima imprimimos um textarea e sua label, pode se adicionar qualquer elemento de um formulário, inputs, checkbox, radios…

Salvando os dados

Depois de tudo, basta salvar as informações no banco, isso é feito adicionando o seguinte código.

add_action('save_post', 'salva_ingredientes');

A função acima, faz com que quando salvemos o post ele chame a função salva_ingredientes que salva as informações personalizadas no banco.

function salva_ingredientes(){
global $post;
update_post_meta($post->ID, "ingredientes", $_POST["ingredientes_textarea"]);
}

Acima, nos passamos o ID do post, depois o nome que será salvo no banco, e o valor que é o campo.
Na verdade os meta boxes são iguais aos campos personalizados, so que são mais padronizados e bonitos. Para resgatar os valores é igual como se estivese resgatando o valor de uma campo personalizado.

$campos = get_post_custom($post->ID);
$ingredientes = $campos["ingredientes"][0];
echo $ingredientes;

Espero que tenham gostado do meu primeiro post.
Não esqueçam de dizer o que acharam dele nos comentários.
Até a próxima. Valeuu!