WordPressでもっとも運用で困るもののひとつに権限設定の緩さがあります。メディアのアップされた画像は他の編集者や画像をアップロードできるユーザーからも見えるし、場合によっては削除できてしまいます。
このメディアに現在ログインしているユーザーのアップされた画像以外を表示しないコードは、よく紹介されています。
$current_user = wp_get_current_user(); $user_role = $current_user->roles[0]; if ( $user_role != 'administrator' ) { function display_only_self_uploaded_medias( $query ) { if ( $user = wp_get_current_user() ) { $query['author'] = $user->ID; } return $query; } add_action( 'ajax_query_attachments_args', 'display_only_self_uploaded_medias' ); }
このコードをfunctions.phpに追記することで、ユーザーは自分のアップした画像やPDFしか表示されなくなります。
サイトによって、各ユーザーの共有の画像パーツなどを使う場合があります。
その場合は、共有パーツをアップするユーザーを作成し、そのユーザーのuserIDが5とすると
$query['author'] = $user->ID;
のところを
$query['author__in'] = array( 5, $user->ID );
とすることで、ログインユーザーと、ユーザーIDが5のユーザーのアップされたメディアソースを表示可能になります。