wake-up-neo.com

<form> in einer Metabox

Ich versuche, ein Plugin zu schreiben, mit dem ein Benutzer ein Video über die Vimeo-Upload-API auf Vimeo hochladen kann.

Um zu vermeiden, dass versucht wird, ein Video auf ein potenziell freigegebenes Hosting-Konto und von dort aus auf Vimeo hochzuladen, versuche ich, es über die Verfügbarkeit von POST - https: //developer.vimeo direkt auf Vimeo hochzuladen. com/apis/advanced/upload # post

Dazu muss ich ein Formular für einen benutzerdefinierten Beitragstyp namens "Vimeo" in ein Meta-Feld einfügen, aber wordPress filtert das Tag und seine Attribute aus der zurückgegebenen HTML-Quelle. Gibt es eine Möglichkeit, dies zu verhindern, oder bin ich falsch vorgegangen? Ich glaube, ich kann eine Form innerhalb einer Formsituation haben.

Vielen Dank.

4
Stewarty

Dies ist nicht der richtige Ansatz, da Sie sich auf einer Post-Bearbeitungsseite (cpt) befinden. Die Metaboxen sind einfach gruppierte Felder, die an das Post-Formular angehängt werden. In Ihrem Fall ist es der Browser, der die Formularattribute Ihrer Metabox filtert, und nicht WordPress seit Ihnen erstellen verschachtelte Formulare, was Sie einfach nicht können.

Ein besserer Ansatz wäre, das Formular nicht in einer Metabox zu haben, aber hier ist ein Beispiel mit der nativen Thickbox:

Fügen Sie zuerst die Schaltfläche hinzu, um die Thickbox zu lanchieren:

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

Füge Formular-HTML außerhalb des Post-Formulars hinzu, zB:

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

Sie sollten so etwas bekommen:

  • Die Medientaste:

    Upload to vimeo button

  • Das Formular in der Dickbox:

    Upload to vimeo thickbox

5
Bainternet