問題描述

我有一個自定義的帖子,其中有一個元標記需要使用文件上傳 (視頻文件) 。我想知道,添加指向 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 輔助翻譯的英文資料結果。如果您對結果不滿意,可以加入我們改善翻譯效果:薇曉朵技術論壇。