我有一个自定义页面,我正在使用该页面,用户可以转录存档文档并将其上载到关系数据库(用于历史研究)。
我目前正在尝试添加一个功能,以便他们可以选择他们正在转录的报告的照片(已上载到媒体库),以便在研究人员查看报告时显示。
我跟着https://dobsondev.com/2015/01/23/using-the-wordpress-media-uploader/ 本教程几乎完全复制了代码,除了使用https://www.smashingmagazine.com/2011/10/how-to-use-ajax-in-wordpress/.
我不是在写插件,只是在使用一个自定义页面模板(不管怎样,从曼谷出版社模板修改一个)。问题是,当按钮出现时(我的意思是,这很简单,它只是一个HTML按钮),当我点击它时,什么都不会发生,Wordpress媒体库管理器/添加任何对话框都不会发生(这就是我正在尝试的)
代码如下
/* Add the media uploader script */
function my_media_lib_uploader_enqueue() {
wp_enqueue_media();
wp_register_script( \'media-lib-uploader-js\', plugins_url( \'media-lib-uploader.js\' , __FILE__ ), array(\'jquery\') );
wp_enqueue_script( \'media-lib-uploader-js\' );
}
add_action("wp_ajax_admin_enqueue_scripts", "my_media_lib_uploader_enqueue");
add_action("wp_ajax_nopriv_admin_enqueue_scripts", "my_media_lib_uploader_enqueue");
是我放在函数文件中的内容-不是修改主题文件,而是我编写的用于DB/创建转录接口的函数。这个我使用的js文件如下
jQuery(document).ready(function($){
var mediaUploader;
$(\'#upload-button\').click(function(e) {
e.preventDefault();
// If the uploader object has already been created, reopen the dialog
if (mediaUploader) {
mediaUploader.open();
return;
}
// Extend the wp.media object
mediaUploader = wp.media.frames.file_frame = wp.media({
title: \'Choose Image\',
button: {
text: \'Choose Image\'
}, multiple: false });
// When a file is selected, grab the URL and set it as the text field\'s value
mediaUploader.on(\'select\', function() {
var attachment = mediaUploader.state().get(\'selection\').first().toJSON();
$(\'#image-url\').val(attachment.url);
});
// Open the uploader dialog
mediaUploader.open();
});
});
下面是我在页面本身中所做的-在演示中,它是以自己的形式-但对我来说,它是现有表单的一部分(这样图像URL可以像所有其他数据一样通过$\\u POST传递到下一个页面,并插入到DB中)。<input id="image-url" type="text" name="image" />
<input id="upload-button" type="button" class="button" value="Choose Image" />
如果你想看到问题本身,http://globalmaritimehistory.com/adm-8-database-project/adm-8-report-transcription-interface/ 如果单击“选择报告类型”(使用部署报告),则为链接-(此页面很好)-并且底部是“选择图像”按钮-这是不起作用的部分。我非常感谢您的帮助。