Anexar arquivos do Metabox

4

Alguém sabe como criar um simples botão "anexar / navegar" que pode ser colocado em um metabox que, ao clicar nele, abriria uma caixa de luz onde o usuário seria capaz de visualizar todos os arquivos de mídia, marque os ele deseja anexar e clicar em um botão "anexar" na parte inferior. Depois de clicar em "anexar" o post metabox seria atualizado com todos os arquivos que ele selecionou ...

    
por NetConstructor.com 19.11.2010 / 16:35

3 respostas

2

Para a parte de abrir uma caixa de luz, procure por algo e, em seguida, executar algo em uma ação dentro: Wordpress já tem isso. Para o que você pergunta é basicamente o thickbox que se abre como no editor de postagem quando você procura uma imagem na galeria.

Você encontra todo o código necessário para o que já está no wordpress. A única coisa que você precisa fazer é coletar o pedaço de código mais complexo, compactá-lo em um plug-in e modificá-lo para atender às suas necessidades. Esses componentes não são muito reutilizáveis por conta própria, portanto, não há API que possa ter facilitado isso para você. Bem, isso não é verdade, você pode usar tb_show() para exibir o thickbox para exemplo .

Mas, no geral, isso não é trivial. Você provavelmente está procurando algo que seja mais fácil de adotar. Eu não sei. Eu uma vez mexi com thickbox < - > pós editor de comunicação (que pode ser mais complexo com o que você precisa), e há muito o que pensar em fazer as coisas. Mas, para o cenário que você descreve, muitas vezes é necessário sinalizar a página que está abrindo o thickbox para atualizar algo após a seleção no pop-up ter sido feita.

Para o metabox, você deve encontrar código suficiente para criar um, então tenho certeza que já existe código para isso.

    
por hakre 19.11.2010 / 20:54
2

Talvez algo aqui ajude ..

enlace

    
por t31os 19.11.2010 / 22:09
1

enlace

Esses caras criaram uma biblioteca impressionante para tipos de campos personalizados no WP admin. Eu acho que é exatamente o que você está procurando - isso torna a criação de campos de upload de imagens triviais.

Isso permite que os metaboxes sejam decalcados para qualquer tipo de post programaticamente com controle preciso.

Houve um pedido para mais detalhes. Correndo o risco de duplicar o conhecimento, aqui está um exemplo da documentação (com alguns mods para usar o controle de arquivos). uma imagem metabox:

function be_sample_metaboxes( $meta_boxes ) {
$prefix = '_cmb_'; // Prefix for all fields
$meta_boxes[] = array(
    'id' => 'test_metabox',
    'title' => 'Test Metabox',
    'pages' => array('page'), // post type
    'context' => 'normal',
    'priority' => 'high',
    'show_names' => true, // Show field names on the left
    'fields' => array(
        array(
            'name' => 'Test Text',
            'desc' => 'field description (optional)',
            'id' => $prefix . 'test_image',
            'type' => 'file'
        ),
    ),
);

return $meta_boxes;
}
add_filter( 'cmb_meta_boxes', 'be_sample_metaboxes' );


add_action( 'init', 'be_initialize_cmb_meta_boxes', 9999 );
function be_initialize_cmb_meta_boxes() {
if ( !class_exists( 'cmb_Meta_Box' ) ) {
    require_once( 'lib/metabox/init.php' );
}
}

O que eu faço é colocar isso no meu posttype_my_post_type_name.php onde eu estou criando o tipo de post. Exija isso do arquivo functions.php depois de ter requerido a biblioteca metabox.

    
por Will 10.09.2012 / 09:47