Wordpress:使用wp.media

时间:2016-12-12 09:53:59

标签: javascript wordpress backbone.js

我正在为WordPress管理区域中的媒体上传做自定义界面。到目前为止,我使用wp.media打开上传模式窗口,并设法使用此代码上传和保存图像

var frame = new wp.media.view.MediaFrame.Select({
    .....
    ....
});

现在我正在尝试编辑附件,在查看media-models.js(wordpress core)之后,我尝试使用MediaFrame.EditAttachments视图。

- 来自media-models.js的代码

if ( 'select' === attributes.frame && MediaFrame.Select ) {
    frame = new MediaFrame.Select( attributes );
} else if ( 'post' === attributes.frame && MediaFrame.Post ) {
    frame = new MediaFrame.Post( attributes );
} else if ( 'manage' === attributes.frame && MediaFrame.Manage ) {
    frame = new MediaFrame.Manage( attributes );
} else if ( 'image' === attributes.frame && MediaFrame.ImageDetails ) {
    frame = new MediaFrame.ImageDetails( attributes );
} else if ( 'audio' === attributes.frame && MediaFrame.AudioDetails ) {
    frame = new MediaFrame.AudioDetails( attributes );
} else if ( 'video' === attributes.frame && MediaFrame.VideoDetails ) {
    frame = new MediaFrame.VideoDetails( attributes );
} else if ( 'edit-attachments' === attributes.frame && MediaFrame.EditAttachments ) {
    frame = new MediaFrame.EditAttachments( attributes );
}

但是我收到此错误

wp.media.view.MediaFrame.EditAttachments is not a constructor

你能帮我找一个使用wp.media(或者其他方式)在模态窗口中打开编辑附件的方法吗?

2 个答案:

答案 0 :(得分:1)

您好像缺少要求电话(例如require("./views/frame/edit-attachments.js"))。该构造函数在此处定义: https://core.trac.wordpress.org/browser/tags/4.6.1/src/wp-includes/js/media/views/frame/edit-attachments.js 检查是否在代码中使用它并执行类似的操作。

答案 1 :(得分:0)

不幸的是,MediaFrame.EditAttachments的逻辑不能单独使用 - 它需要打开它的网格。但是,您可以使用get_media_item(attachment_id)方法接收用于修改图像的表单的HTML:https://developer.wordpress.org/reference/functions/get_media_item/

再看看我在这里的答案: https://wordpress.stackexchange.com/questions/270008/wp-media-edit-attachment-screen/