É possível criar uma meta box que anexa várias imagens a uma postagem?
É possível criar uma meta box que anexa várias imagens a uma postagem?
Respostas:
Isso depende inteiramente do que você quer dizer com "anexar".
Cada postagem do WordPress já pode ter vários anexos de mídia - fotos, documentos etc. Você os carrega usando o carregador incorporado e todos serão marcados como "anexados" a esse ID de postagem específico.
Você pode consultá-los posteriormente programaticamente em outro lugar. Por exemplo, o código a seguir lista todos os anexos de uma postagem específica (código do Snipplr ) :
$args = array(
'post_type' => 'attachment',
'numberposts' => null,
'post_status' => null,
'post_parent' => $post->ID
);
$attachments = get_posts($args);
if ($attachments) {
foreach ($attachments as $attachment) {
echo apply_filters('the_title', $attachment->post_title);
the_attachment_link($attachment->ID, false);
}
}
Toda essa funcionalidade é acessível através do botão "Adicionar mídia" padrão, à direita de "Upload / Insert", na nova tela de postagem. Depois de adicionar uma imagem, você pode clicar em "Selecionar arquivos" novamente e fazer upload de uma segunda imagem. Então um terceiro. Então um quarto. Tantos quantos quiser.
Cada uma dessas imagens será "anexada" à postagem ... mesmo que não esteja inserida no conteúdo.
$post
e $args
em pelo menos dois contextos diferentes, o que torna muito difícil descobrir exatamente o que você está tentando fazer a qualquer momento. Mas eu fiz teste o código que eu postei acima e ele não funcionar ...
Aqui está um tutorial completo com arquivos de origem que fazem exatamente o que você deseja:
Você pode fazer o upload de várias imagens clonando o campo de entrada e também pode visualizar, excluir imagens com ajax, adicionar várias metaboxes a vários / diferentes tipos de postagem e muito mais.
http://www.deluxeblogtips.com/2010/05/howto-meta-box-wordpress.html
Eu também recomendo verificar http://www.wpalchemy.com . WPAlchemy é uma "classe" excelente (próxima a um plug-in) para adicionar facilmente caixas de meta personalizadas ao seu site. Eu o uso extensivamente e fiquei impressionado com a facilidade de uso e o comprometimento da comunidade de desenvolvedores e florescentes.
Sim, é bem possível. Veja uma resposta que recebi sobre metaboxes. Basicamente, você deseja adicionar um gancho save_post
e verificar o campo nonce.
function my_save_post_callback( $post_id, $post )
{
if ( empty($_POST) || !isset($_POST['my_custom_metabox']) || !wp_verify_nonce( $_POST['my_custom_metabox'], plugin_basename( __FILE__ ) ) )
{
return $post->ID;
}
// Handle the upload here
}
add_action( 'save_post', 'my_save_post_callback', 1, 2);