我正在创建一个插件,用于在上传时检查重复的媒体项目。如果上载了文件,并且该文件已经存在于媒体库中,我将向用户提供删除上载文件并插入现有文件的选项。
在modal media(模式媒体)窗口(单击post editor上方的“Add media”(添加媒体)时出现的窗口)中,我已经完成了检测重复文件的所有工作,并提供了一个复选框,用户可以单击该复选框删除重复文件(通过“wp\\u ajax\\u save-attachment-compat”)。用户删除新文件后,我需要找到一种方法来修改当前选定媒体项的JavaScript数组,用副本的帖子ID替换删除文件的帖子ID,这样当用户单击“插入帖子”时,就会插入正确的图像。
这是我目前使用的临时代码。每当在默认媒体模式下进行新选择时,就会触发此操作。
( function( $ ) {
var _AttachmentDisplay = wp.media.view.Settings.AttachmentDisplay;
wp.media.view.Settings.AttachmentDisplay = _AttachmentDisplay.extend({
render: function() {
_AttachmentDisplay.prototype.render.apply(this, arguments);
selection = this.controller.state().get(\'selection\').first().toJSON();
//selection = this.controller.state().get(\'selection\');
filename = selection.filename;
attachment = wp.media.attachment(id); // get attachment with id
console.dir(filename);
console.dir(selection);
}
});
} )( jQuery );
最合适的回答,由SO网友:Dmitry Mukhin 整理而成
我可以在media modal中执行以下操作:
var selection = wp.media.frame.state().get(\'selection\'); // get selected collection
attachment = wp.media.attachment(id); // get attachment with id
attachment.fetch();
selection.add(attachment); // add attachment to selection collection
应该有
.remove()
方法或类似的方法。