forma dentro de un metabox

4

Estoy tratando de escribir un complemento que permita a un usuario subir un video a Vimeo a través de la API de carga de Vimeo.

Para evitar intentar cargar un video en una cuenta de alojamiento potencialmente compartida y luego desde allí a Vimeo, estoy intentando cargarlo directamente a Vimeo a través de su disponibilidad POST - enlace

Para hacer esto, tengo que colocar un formulario dentro de un meta box para un tipo de publicación personalizado llamado 'Vimeo' pero WordPress está filtrando la etiqueta y sus atributos del origen HTML devuelto. ¿Hay alguna forma de prevenir esto o he tomado el enfoque equivocado? Creo que puedo tener un formulario dentro de una situación de formulario.

Gracias.

    
pregunta Stewarty 26.06.2012 - 13:32

1 respuesta

5

No es el enfoque correcto, ya que estás en una página de edición de post (cpt), los metabox son campos agrupados simples que se adjuntan al formulario de post y en tu caso, en realidad es el navegador el que filtra los atributos de formulario de tu metabox y no WordPress ya que está creando formularios anidados que es algo que simplemente no puede hacer.

Un mejor enfoque sería no tener la forma dentro de un metabox, pero aquí afuera hay un ejemplo que usa la caja nativa:

Primero agregue el botón para lanzar la caja gruesa:

//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>';
}

Agregar formulario html fuera del formulario de publicación 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
}

Deberías obtener algo como esto:

  • El botón de medios:

  • Elformularioenelthickbox:

respondido por el Bainternet 26.06.2012 - 15:55

Lea otras preguntas en las etiquetas