问题描述
我有一个自定义的帖子,其中有一个元标记需要使用文件上传 (视频文件) 。我想知道,添加指向 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&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 辅助翻译的英文资料结果。如果您对结果不满意,可以加入我们改善翻译效果:薇晓朵技术论坛。