Na versão 2.7 o WordPress estreiou as meta boxes, que são aquelas caixinhas arrastáveis que estão presente no dashboard, na área de edição de posts e páginas além de outros locais na área administrativa do WordPress.
Muitas vezes, na criação de plugins que interajem com os posts ou páginas, é necessário adicionar um novo campo à area de edição. Afim de manter a formatação do WordPress, a criação de uma meta box é o caminho mais limpo e fácil. Também é possível adicionar as metaboxes as páginas dos seus plugins, mas é uma tarefa um pouco mais complicada, então vamos deixar para outro artigo.
add_meta_box($id, $title, $callback, $page, $context=’advanced’, $priority=’default’, $callback_args=null);
Essa função é a responssável por adicionar a meta box a uma determinada página. O $id é o identificador único para o HTML, é com esse identificador que o WordPress manipulará sua metabox. Já o $title é o título da metabox, $callback é a sua função que ficará responssável pelo carregamento do conteúdo dentro da metabox e $page é a página onde a sua metabox será carregada (‘page’, ‘post’, ‘link’, etc). Os outros parâmetros são opcionais: $context define o local da página onde sua metabox será carregada por padrão (‘normal’, ‘advanced’, ‘side’) enquanto $priority diz o posicionamento padrão da metabox dentro do $context (‘high’ ou ‘low’), e por fim $callback_args que permite a passagem de argumentos à metabox.
Por exemplo, para criar uma metabox que mostre uma frase de incentivo (não consegui pensar em algo mais simples e útil) na parte de cima do sidebar da tela de edição de posts, ficaria assim:
add_meta_box('incentivador', 'Incentivador', 'incentive_me', 'post', 'side', 'high');
Não se esqueça de criar a função ‘incentive_me’ em seu plugin.
Agora só falta adicionar um gancho para a chamada da metabox:
add_action('do_meta_boxes', 'incentivador_metabox');
Onde ‘incentivador_metabox’ é a função que conterá o seu add_meta_box.
O código final ficaria assim:
<?php
/*
Plugin Name: MetaBox: Incentivador
Description: Mostra uma frase
Version: 0.1
Author: Marcelo Mesquita
Author URI: http://www.marcelomesquita.com/
*/
add_action('do_meta_boxes', 'incentivador_metabox');
function incentivador_metabox()
{
add_meta_box('incentivador', 'Incentivador', 'incentive_me', 'post', 'side', 'high');
}
function incentive_me()
{
$frases = array(
'Você consegue!',
'Faça seu melhor!',
'Tudo é possível!'
);
print $frases[rand(0, 3)];
}
?>
Para saber mais acesse a Referência da Função add_meta_box
Pingback: WordPress Video
Poderia me falar como fazer um query para pegar um determinado conteudo do Meta Box.
Criei um metabox que é um checkbox, agora não sei como fazer a query para visualizar ele no site.
Oi Nilson,
vai depender de como você fez para salvar as informações desse metabaox. Sugiro utilizar as funções update_option e get_option do próprio WordPress, assim você não precisa se preocupar em montar queries.
Abraço.
Hey clever points.. now why did not i consider those? Off topic slightly, is that this web page sample merely from an bizarre installation or else do you use a custom-made template. I use a webpage i’m seeking to improve and effectively the visuals is likely one of many key issues to complete on my list.
Olá Marcelo parabéns pelo conteúdo.
gostei da forma que está exposto.