覆盖 WordPress 媒体上传器的 saveCompat
Posted
技术标签:
【中文标题】覆盖 WordPress 媒体上传器的 saveCompat【英文标题】:Override saveCompat for WordPress Media Uploader 【发布时间】:2014-08-17 09:54:56 【问题描述】:我是Backbone
的新手,所以不明白我做错了什么。我需要的是覆盖 saveCompat(media-models.js
line 310
,WP 3.9.1
)。我正在尝试以与覆盖某些媒体视图相同的方式进行操作
wp.media.model.Attachment = wp.media.model.Attachment.extend(
saveCompat: function( data, options )
some code here...
);
但这对我不起作用。 Native WordPress saveCompat
被执行。同时,同样的想法也适用于 wp.media.view.AttachmentCompat
,例如
wp.media.view.AttachmentCompat = wp.media.view.AttachmentCompat.extend(
save: function( event )
some code here...
);
提前致谢!
【问题讨论】:
【参考方案1】:使用_.extend
删除了调用方法的超类实现的能力。正确的(或至少是可行的)方法是使用 Backbone 的 extend
方法,然后像这样覆盖 wp.media.model.Attachment
中的原型:
var MediaCreditAttachmentModel = wp.media.model.Attachment.extend(
saveCompat: function( data, options )
...
);
wp.media.model.Attachment.prototype = MediaCreditAttachmentModel.prototype;
【讨论】:
【参考方案2】:我想通了。正确的扩展方式是:
_.extend( wp.media.model.Attachment.prototype,
saveCompat: function( data, options )
some code here...
);
【讨论】:
以上是关于覆盖 WordPress 媒体上传器的 saveCompat的主要内容,如果未能解决你的问题,请参考以下文章