这不是正确的方法,因为您在一个post(cpt)编辑页面中,元数据库是附加到post表单的简单分组字段,在您的情况下,实际上是浏览器过滤元数据库的表单属性,而不是WordPress,因为您创建的是嵌套表单,这是您无法做到的。
更好的方法是不将表单放在metabox内,但放在metabox外,下面是一个使用本机thickbox的示例:
首先添加按钮以打开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>\';
}
在post form ex之外添加表单html:
//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
}
您应该会看到这样的内容:
- 媒体按钮:
thickbox中的表单: