我正在尝试在WordPress中创建一个元框,允许用户选择一个PDF文件来附加到他/她正在创建的帖子。到目前为止,metabox显示得很好,媒体上传器在一定程度上按预期工作。
问题是当用户点击浏览按钮时,将首先显示默认媒体上传器。如果我关闭那个并再次单击该按钮,则自定义上传器将显示并按预期工作。这是我正在使用的JS代码......
jQuery(document).ready(function($){
// Instantiates the variable that holds the media library frame.
var pdf_file_frame;
// Runs when the image button is clicked.
$('#pdf-lesson-url-button').click(function(e){
// Prevents the default action from occurring.
e.preventDefault();
// If the frame already exists, re-open it.
if ( pdf_file_frame ) {
pdf_file_frame.open();
return;
}
// Sets up the media library frame
pdf_file_frame = wp.media.frames.file_frame = wp.media({
title: pdf_meta.title,
button: { text: pdf_meta.button },
library: { type: 'application/pdf' },
multiple: false
});
// Runs when an image is selected.
pdf_file_frame.on('select', function(){
// Grabs the attachment selection and creates a JSON representation of the model.
var media_attachment = pdf_file_frame.state().get('selection').first().toJSON();
// Sends the attachment URL to our custom image input field.
$('#pdf-lesson-url').val(media_attachment.url);
});
// Opens the media library frame.
wp.media.editor.open();
});
});
我已经搜索了这个问题,但没有出现令人满意的结果。我可能使用了错误的搜索短语,但事实是我不知道这里发生了什么,特别是当你得到自定义对话框以显示它工作正常时。
非常感谢任何帮助。
感谢阅读这篇文章的所有人。
答案 0 :(得分:0)
尝试在.unbind('click')
之前添加.click(function())
:
$('#pdf-lesson-url-button').unbind('click').click(function(e){
这可能有用,在运行自定义点击功能之前解除默认点击功能。
答案 1 :(得分:0)
我终于解决了它,并且几乎总是如此,它并不那么困难。我从示例中复制了代码,当他们使用自定义媒体上传器时,在我的代码的最后一行中,默认的是打开的。改变了......
wp.media.editor.open();
为...
pdf_file_frame.open();
那就做到了。
感谢@Calvin让我重新思考。