How to restrict images in v3.5 Media Library modal to only those from a specific post id?
How can someone restrict the images which appear in the v3.5 Media Library modal to only show those that are attached to a specific post id?
I'm creating a front-end management template that allows multiple authors to edit any particular post, hence the need to restrict what is shown on a post-by-post basis rather than those uploaded by a particular user.
The upload modal is based off of Mike Jolley's upload modal tutorial. It's been modified to look for the post id in the body class and attach uploaded media to that $pid.
This is the complete modal js so far:
// Uploading files
jQuery(document).ready(function($) {
var file_frame;
var wp_media_post_id = wp.media.model.settings.post.id; // Store the old id
var classes = $('body').attr('class'); // get all classes from body element
var set_to_post_id = classes.match(/postid-(\d+)/)[1]; // pid to attach media to
jQuery(document).on('click', '.upload_image_button', function(){
event.preventDefault();
// If the media frame already exists, reopen it.
if ( file_frame ) {
// Set the post ID to what we want
file_frame.uploader.uploader.param( 'post_id', set_to_post_id );
// Open frame
file_frame.open();
return;
} else {
// Set the wp.media post id so the uploader grabs the ID we want when initialised
wp.media.model.settings.post.id = set_to_post_id;
}
// 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' ),
},
multiple: false // Set to true to allow multiple files to be selected
});
// When an image is selected, run a callback.
file_frame.on( 'select', function() {
// We set multiple to false so only get one image from the uploader
attachment = file_frame.state().get('selection').first().toJSON();
// Do something with attachment.id and/or attachment.url here
// Restore the main post ID
wp.media.model.settings.post.id = wp_media_post_id;
});
// Finally, open the modal
file_frame.open();
});
// Restore the main ID when the add media button is pressed
jQuery('a.add_media').on('click', function() {
wp.media.model.settings.post.id = wp_media_post_id;
});
});
The two primary authoritative WPSE threads on Media Library only deal with restricting by user.
- Restricting Users to View Only Media Library Items They Have Uploaded?
- Media library to list images only user uploaded
Another WPSE reference is Limit Media Library to Given Folder.
Any direction is appreciated.
Topic media-modal media-library uploads Wordpress
Category Web