问题描述

我有一个自定义的帖子,其中有一个元标记需要使用文件上传 (视频文件) 。我想知道,添加指向 WordPress 媒体上传器的”Upload” 按钮的正确方法是什么,并将所选上传的文件的 URL 设置为导致上传按钮关联的文本字段。

我不是在寻找创建实际元标记选项的代码,而是为了正确添加 Wordpress 媒体上传按钮。

最佳解决方案

看这个 media uploader skeleton 。您还可以在自定义标记中使用它,如 Meta Box 。

提示,检查,您只使用页面上的脚本,您在哪里活动您的元框。否则通常是默认页面和上传者的问题。

现在尝试清除重要的部分,将上传者包含在您的自定义部分中。

首先在元框中包含一个按钮:

<input id="upload_image" type="text" size="36" name="upload_image" value="" />
<input id="upload_image_button" type="button" value="Upload Image" />

现在排队脚本:

function my_admin_scripts() {    
    wp_enqueue_script('media-upload');
    wp_enqueue_script('thickbox');
    wp_register_script('my-upload', WP_PLUGIN_URL.'/my-script.js', array('jquery','media-upload','thickbox'));
    wp_enqueue_script('my-upload');
}

function my_admin_styles() {

    wp_enqueue_style('thickbox');
}

// better use get_current_screen(); or the global $current_screen
if (isset($_GET['page']) && $_GET['page'] == 'my_plugin_page') {

    add_action('admin_print_scripts', 'my_admin_scripts');
    add_action('admin_print_styles', 'my_admin_styles');
}

最后一部分是您的自定义脚本,以使用此框中的 thickbox 和 uploader 。

jQuery(document).ready( function( $ ) {

    $('#upload_image_button').click(function() {

        formfield = $('#upload_image').attr('name');
        tb_show( '', 'media-upload.php?type=image&amp;TB_iframe=true' );
        return false;
    });

    window.send_to_editor = function(html) {

        imgurl = $('img',html).attr('src');
        $('#upload_image').val(imgurl);
        tb_remove();
    }

});

参考文献

注:本文内容整合自 Google/Baidu/Bing 辅助翻译的英文资料结果。如果您对结果不满意,可以加入我们改善翻译效果:薇晓朵技术论坛。