forma dentro de um metabox

4

Estou tentando escrever um plug-in que permita que um usuário envie um vídeo para o Vimeo por meio da API de upload do Vimeo.

Para evitar a tentativa de enviar um vídeo para uma conta de hospedagem potencialmente compartilhada e, de lá, para o Vimeo, estou tentando fazer upload diretamente para o Vimeo por meio da disponibilidade do POST - enlace

Para fazer isso eu tenho que colocar um formulário dentro de uma caixa meta para um tipo de post personalizado chamado 'Vimeo', mas o wordPress está filtrando a tag e seus atributos da fonte HTML retornada. Existe uma maneira de impedir isso ou eu tomei a abordagem errada? Eu acredito que posso ter uma forma dentro de uma situação de forma.

Obrigado.

    
por Stewarty 26.06.2012 / 13:32

1 resposta

5

Não é a abordagem correta, já que você está em uma página de edição post (cpt), os metabox são campos agrupados que são anexados ao formulário de postagem e, no seu caso, é o navegador que está filtrando os atributos de formulário do metabox e não WordPress desde que você está criando formulários aninhados que é algo que você simplesmente não pode fazer.

Uma abordagem melhor seria não ter a forma dentro de um metabox, mas aqui fora é um exemplo usando o thickbox nativo:

Primeiro, adicione o botão para acessar o thickbox:

//add the button to lanch the thickbox
add_action( 'media_buttons','add_vimeo_upload_button',100);

function add_vimeo_upload_button(){

    global $pagenow,$typenow;   

    if (!in_array( $pagenow, array( 'post.php', 'post-new.php' ) ))
        return;
    echo '<a href="#TB_inline?height=155&width=300&inlineId=vimeo_upload" class="thickbox"><img src="http://i.imgur.com/5hyoa.png"alt="Upload to vimeo"></a>';
}

Adicionar formulário html fora do formulário de postagem ex:

//add form html outside post form
add_filter('admin_footer','vimeo_upload_form');

function vimeo_upload_form(){
    global $pagenow,$typenow;   
    if (!in_array( $pagenow, array( 'post.php', 'post-new.php' )))
        return;

//once we get here we are on the right page so we echo form html:
?>
<div id="vimeo_upload" style="display:none">
    <form method="POST" action="vimeo/url">
        <p><label>Upload video to Vimeo</label>
            <input type="file" name="" value="" placeholder=""></p>
        <p><input type="submit" name="" value="upload"></p>
    </form>
</div>
<?php
}

Você deve conseguir algo assim:

  • O botão de mídia:

  • Oformulárionothickbox:

por Bainternet 26.06.2012 / 15:55