我正在尝试使用新的wp。我正在构建的应用程序的媒体上传器框架。我读了很多关于其他问题、博客帖子等的文章。
我在下面粘贴的代码已经很好地工作了,甚至还做了一些额外的东西,以供参考,以防对任何人有用。
但我想对它做一个修改:当框架打开时,I want it to filter the "media library" display to only show attachment defined by a list of IDs that I provide.
这是我当前的代码:
// Uploading files
var file_frame;
$(\'.upload_attachments_button\').on(\'click\', function( event ){
event.preventDefault();
// If the media frame already exists, reopen it.
if ( file_frame ) {
file_frame.open();
return;
}
// Create the media frame.
file_frame = wp.media.frames.file_frame = wp.media({
title: jQuery( this ).data( \'uploader_title\' ),
button: { text: jQuery( this ).data( \'uploader_button_text\' ) },
library : { type : \'image\' },
multiple: true // Set to true to allow multiple files to be selected
});
// When frame is open, select existing image attachments from custom field
file_frame.on( \'open\', function() {
var selection = file_frame.state().get(\'selection\');
var attachment_ids = jQuery(\'#attachment_ids\').val().split(\',\');
// This is my attempt at showing only attachment with ID 275 --> but doesn\'t work!
file_frame.state().set( \'library\', media.query({ id: 275 }) );
attachment_ids.forEach(function(id) {
attachment = wp.media.attachment(id);
attachment.fetch();
selection.add( attachment ? [ attachment ] : [] );
});
});
// When images are selected, place IDs in hidden custom field and show thumbnails.
file_frame.on( \'select\', function() {
var selection = file_frame.state().get(\'selection\');
// Place IDs in custom field
var attachment_ids = selection.map( function( attachment ) {
attachment = attachment.toJSON();
return attachment.id;
}).join();
if( attachment_ids.charAt(0) === \',\' ) { attachment_ids = attachment_ids.substring(1); }
$(\'#attachment_ids\').val( attachment_ids );
// Show Thumbs
var attachment_thumbs = selection.map( function( attachment ) {
attachment = attachment.toJSON();
if( attachment.id != \'\' ) { return \'<img src="\' + attachment.sizes.thumbnail.url + \'" id="id-\' + attachment.id + \'" />\'; }
}).join(\' \');
$(\'#images-feedback\').show();
$(\'#thumbs\').html(attachment_thumbs);
});
// Finally, open the modal
file_frame.open();
});
// Place selected thumbnail ID into custom field to save as featured image
$(document).on(\'click\', \'#thumbs img\', function() {
$(\'#thumbs img\').removeClass(\'chosen\');
var thumb_ID = $(this).attr(\'id\').substring(3);
$(\'#wpuf_featured_img\').val(thumb_ID);
$(this).addClass(\'chosen\');
});
我正在尝试过滤媒体库显示,如图所示,但未给出任何结果:
file_frame.state().set( \'library\', media.query({ id: 275 }) );
有人知道如何编写语法吗?