jeroldhaas of EWI
7/30/2014 - 8:24 PM

Limit visibility of posts/media by users

Limit visibility of posts/media by users

//pages and media library pages
function hide_posts_media_by_other($query) {
	global $pagenow;

	if( ( 'edit.php' != $pagenow && 'upload.php' != $pagenow   ) || !$query->is_admin ){
		return $query;
	}

	if( !current_user_can( 'manage_options' ) ) {
		global $user_ID;
		$query->set('author', $user_ID );
	}
	return $query;
}
add_filter('pre_get_posts', 'hide_posts_media_by_other');

//media ajax

add_filter( 'posts_where', 'hide_attachments_wpquery_where' );
function hide_attachments_wpquery_where( $where ){
	global $current_user;
	if( !current_user_can( 'manage_options' ) ) {
		if( is_user_logged_in() ){
			if( isset( $_POST['action'] ) ){
				// library query
				if( $_POST['action'] == 'query-attachments' ){
					$where .= ' AND post_author='.$current_user->data->ID;
				}
			}
		}
	}

	return $where;
}