<form> inside a metabox

时间:2012-06-26 作者:Stewarty

我正在尝试编写一个插件,允许用户通过Vimeo上载API将视频上载到Vimeo。

为了避免试图将视频上传到可能共享的托管帐户,然后再从那里上传到Vimeo,我正试图通过其POST可用性直接上传到Vimeo-https://developer.vimeo.com/apis/advanced/upload#post

为此,我必须在一个称为“Vimeo”的自定义帖子类型的元框中放置一个表单,但wordPress正在从返回的HTML源中过滤标签及其属性。有没有办法防止这种情况发生,或者我采取了错误的方法?我相信我可能会在一种形式的情况下有一种形式。

谢谢

1 个回复
最合适的回答,由SO网友:Bainternet 整理而成

这不是正确的方法,因为您在一个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
}

您应该会看到这样的内容:

  • 媒体按钮:

    Upload to vimeo button

    thickbox中的表单:

    Upload to vimeo thickbox

结束

相关推荐

可以使用GET_POST_META()来控制HTML吗?

我想隐藏或显示我构建的HTML小部件,这取决于是否有人通过WP Admin向页面添加自定义字段。这可能吗?我想在HTML小部件模板(tips.php)中执行此操作:检查此模板中的每个自定义字段是否都有值。如果没有,请从视图中隐藏此html。否则,如果有自定义字段文本,则显示小部件。这是我的代码:<aside id=\"tipContainer\"> <div> <h1><?php echo get_post_meta(get_the_id(