問題描述

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