Siehe dieses Media Uploader-Skelett . Sie können es auch in Ihrem benutzerdefinierten Markup verwenden, z. B. Meta Box.
Ein Hinweis, überprüfen Sie, dass Sie nur die Skripte auf der Seite verwenden, auf der Sie Ihre Meta Box aktivieren. Ansonsten ist es oft ein Problem auf den Standardseiten und beim Uploader.
Versuchen Sie nun, die wichtigen Teile zu löschen, um den Uploader in Ihr benutzerdefiniertes Teil aufzunehmen.
Fügen Sie zunächst eine Schaltfläche in das Meta-Feld ein:
<input id="upload_image" type="text" size="36" name="upload_image" value="" />
<input id="upload_image_button" type="button" value="Upload Image" />
Stellen Sie nun die Skripte in die Warteschlange:
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');
}
Der letzte Teil ist Ihr benutzerdefiniertes Skript, um die Thickbox und den Uploader darin zu verwenden.
jQuery(document).ready( function( $ ) {
$('#upload_image_button').click(function() {
formfield = $('#upload_image').attr('name');
tb_show( '', 'media-upload.php?type=image&TB_iframe=true' );
window.send_to_editor = function(html) {
imgurl = $(html).attr('src');
$('#upload_image').val(imgurl);
tb_remove();
}
return false;
});
});