J'essaie d'écrire un plugin qui permet à un utilisateur de télécharger une vidéo sur Vimeo via l'API de téléchargement Vimeo.
Afin d'éviter d'essayer de télécharger une vidéo sur un compte d'hébergement potentiellement partagé, puis de là vers Vimeo, j'essaie de télécharger directement vers Vimeo via leur POST availability - https: //developer.vimeo. com/apis/advanced/upload # post
Pour ce faire, je dois placer un formulaire dans une méta-boîte pour un type de message personnalisé appelé "Vimeo", mais WordPress filtre la balise et ses attributs à partir de la source HTML renvoyée. Y a-t-il un moyen d'empêcher cela ou ai-je pris la mauvaise approche? Je crois que je peux avoir une forme dans une situation de forme.
Merci.
Ce n'est pas la bonne approche, puisque vous êtes dans une page d'édition (cpt), les métaboxes sont de simples champs groupés qui sont attachés au formulaire et dans votre cas, c'est en fait le navigateur qui filtre les attributs de formulaire de votre métabox et non WordPress puisque vous créent des formulaires imbriqués, ce que vous ne pouvez pas faire.
Une meilleure approche serait de ne pas avoir le formulaire à l'intérieur d'un metabox, mais voici un exemple utilisant l'exemple de l'option thickbox native:
//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>';
}
//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
}
Le bouton média:
Le formulaire dans thickbox: