É difícil declarar as melhores práticas aqui.
O posicionamento depende do conteúdo do metabox: um campo do editor seria muito estreito geralmente na coluna lateral; por outro lado, duas pequenas caixas de seleção parecerão perdidas na coluna principal.
Para entender onde a caixa será colocada, vamos usar um pequeno plugin de demonstração:
add_action( 'add_meta_boxes_post', 'register_demo_metaboxes' );
function register_demo_metaboxes()
{
$contexts = array ( 'normal', 'advanced', 'side' );
$priorities = array ( 'high', 'sorted', 'core', 'default', 'low' );
foreach ( $contexts as $context )
foreach ( $priorities as $priority )
add_meta_box(
"demo-$context-$priority", // id
"$context/$priority", // title
'demo_metabox_callback', // callback
NULL, // screen
$context,
$priority
);
}
function demo_metabox_callback( $object, $box )
{
static $count = 1;
print "number " . $count++;
}
side/high
e side/sorted
será colocado acima da caixa Publicar , normal/high
imediatamente após o editor, */low
no final da tela e provavelmente fora da vista.
Algumas regras que tento seguir:
- Não mova a caixa Publicar . Os usuários podem não descobrir como mover a caixa para baixo. Isso pode ser muito chato.
- Tente entender com que frequência uma caixa pode ser usada. Uma configuração que você ativa ou desativa apenas uma vez por postagem deve ser muito baixa.
- Ordem por importância: as caixas com os campos obrigatórios (preço de um produto) devem ser muito destacadas, uma descrição que será extraída do conteúdo principal se estiver vazia, não precisa ficar visível o tempo todo.
- Alguns usuários vão mover a caixa fora de vista, alguns podem desativá-lo completamente. Prepare seus manipuladores de retorno de chamada para isso.
- Use
normal/default
ou side/default
se você não tiver certeza.