Voir ce squelette de téléchargement de médias . Vous pouvez également l'utiliser dans votre balisage personnalisé, comme Meta Box.
Un indice, vérifiez, que vous n'utilisez que les scripts de la page, où vous activez votre Meta Box. Sinon, c'est souvent un problème sur les pages par défaut et l'uploader.
Maintenant, essayez d'effacer les parties importantes pour inclure l'uploader dans votre partie personnalisée.
Incluez d'abord un bouton dans la méta-boîte:
<input id="upload_image" type="text" size="36" name="upload_image" value="" />
<input id="upload_image_button" type="button" value="Upload Image" />
Maintenant, mettez les scripts en file d'attente:
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');
}
La dernière partie est votre script personnalisé pour utiliser la boîte épaisse et le téléchargeur à l'intérieur.
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;
});
});