我想有一个媒体上传模式,只显示具有特定post meta的图像媒体,比如“my\\u image\\u meta”。我怎样才能做到这一点?这是我的实际代码,它只是过滤图像:
var mediaUploader;
var $inputVal = $(\'input[name="geoposts_overlay_ids"]\');
var $inputBt = $(\'#geoposts_overlays_select\');
$inputBt.click(function(e) {
e.preventDefault();
if (mediaUploader) {
mediaUploader.open();
return;
}
mediaUploader = wp.media.frames.file_frame = wp.media({
title: overlayUploadL10n.title,
button: {
text: overlayUploadL10n.button
},
library: {
type: [ \'image\' ]
},
multiple: true
});
mediaUploader.on(\'select\', function() {
var selection = mediaUploader.state().get(\'selection\');
var media_ids = [];
selection.map( function( getImage ) {
var media = getImage.toJSON();
media_ids.push(media.id);
})
var media_ids_str = media_ids.join();
$inputVal.val(media_ids_str);
});
mediaUploader.open();
});
最合适的回答,由SO网友:Vitauts Stočka 整理而成
最简单的部分是过滤附件列表。使用此代码
add_filter(\'ajax_query_attachments_args\', function($args) {
$args[\'meta_query\'] = array(
array(
\'key\' => \'my_image_meta\',
\'value\' => $some_value,
\'compare\' => \'=\'
)
);
return $args;
});
但是,此代码将过滤所有媒体库查询。您可能需要从中传递一些附加参数
wp.media
.
This answer 可能会有帮助。