如何在wordpress插件中添加媒体上传

我读了一些关于如何在wordpress插件中集成媒体上传器的教程。 我根据教程做了媒体上传器。 http://wordpress.org/support/topic/howto-integrate-the-media-library-into-a-plugin?replies=4我这样做,它完美地工作。 当我再次尝试相同的脚本多次媒体上传时,这是我试过的小提琴只是改变了特定文本字段的ID。 http://jsfiddle.net/UrXPe/1/当我点击上传时,所有都是完美的。 唯一的事情,如果我点击insert into post它的图像的url出现在第二个浏览字段中。 这是我面对的截图。 在此处输入图像描述

当我在插入post后点击第一个上传字段(上传过程成功)时,相应的媒体url出现在第二个字段中,而不是第一个。 我不知道问题在哪里,任何建议都会很棒。

更新 – 向下滚动

经过大量的努力和研究以及一些定制,我在下面编写了紧凑的几行代码,以便在wordpress中的任何地方使用媒体上传器。 只需将代码放在某个函数中,然后在任何地方调用该函数。 上传/选择的文件的路径将被复制到文本框,然后您可以使用它。

希望这有助于某人。

 // jQuery wp_enqueue_script('jquery'); // This will enqueue the Media Uploader script wp_enqueue_media(); ?> 

更新 :只是添加。 您可能需要在插件/主题文件中添加函数包装器。 这是以下内容:

 // UPLOAD ENGINE function load_wp_media_files() { wp_enqueue_media(); } add_action( 'admin_enqueue_scripts', 'load_wp_media_files' ); 

如果WP无法加载上传管理器,这将调用相关的JS文件和CSS文件。 这也会删除控制台警告。

我正在使用这种方法将媒体上传器用于我的自定义插件。可能这会有所帮助。

主题文件(index.php)中添加这些。

 wp_enqueue_style('thickbox'); // call to media files in wp wp_enqueue_script('thickbox'); wp_enqueue_script( 'media-upload'); // load script to admin function wpss_admin_js() { $siteurl = get_option('siteurl'); $url = $siteurl . '/wp-content/plugins/' . basename(dirname(__FILE__)) . '/js/admin_script.js'; echo ""; } add_action('admin_head', 'wpss_admin_js'); 

admin_script.js文件中,

 jQuery('#wpss_upload_image_button').click(function() { formfield = jQuery('#wpss_upload_image').attr('name'); tb_show('', 'media-upload.php?type=image&TB_iframe=true'); return false; }); window.send_to_editor = function(html) { imgurl = jQuery('img',html).attr('src'); jQuery('#wpss_upload_image').val(imgurl); tb_remove(); jQuery('#wpss_upload_image_thumb').html(""); } 

管理员文件(admin_settings.php),

 
security_image) && $record->security_image !='') { ?>

我博客中的更多细节

在自定义插件中使用它