覆盖 WordPress 媒体上传器的 saveCompat

Posted

技术标签:

【中文标题】覆盖 WordPress 媒体上传器的 saveCompat【英文标题】:Override saveCompat for WordPress Media Uploader 【发布时间】:2014-08-17 09:54:56 【问题描述】:

我是Backbone 的新手,所以不明白我做错了什么。我需要的是覆盖 saveCompat(media-models.jsline 310WP 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的主要内容,如果未能解决你的问题,请参考以下文章

无法通过 Wordpress 上传器上传媒体

WordPress媒体库上传不了视频。怎么回事?

WordPress 将媒体上传到帖子问题

带有大小选择的 WordPress 媒体上传器

WordPress 3.5 自定义媒体上传为您的主题选项

WAMP - 超过最大执行时间 - 无法再通过 Wordpress 媒体上传上传照片