仕事でどうしても必要だったので久しぶりに深堀り。
特定多数のユーザが記事を投稿するようなサイトを構築する場合、アップロードしたメディア、特に画像が他の人がアップロードしたものも見えてしまう。
もちろん、削除や変更はできないのだけど、ずらーっと画像が並んでしまうとミスにもつながるので、自分がアップロードした画像のみが見えるように変更したかった。
ただ、いくかの記事を参考にトライしてみたけど、うまくゆかず。
で、色々としらべたところ、解決している記事を発見!
Media library to list images only user uploaded
記事のとおり、不要なコードを除いたらうまくうごきました。
ま、めったに使うことはないのだけど、覚書として。
/* * メディアの抽出条件にログインユーザーの絞り込み条件を追加する*/
add_action('pre_get_posts','users_own_attachments');
function users_own_attachments( $wp_query_obj )
{
global $current_user, $pagenow;
if( !is_a( $current_user, 'WP_User') )
return;
if( !current_user_can('delete_pages') )
$wp_query_obj->set('author', $current_user->id );
return;
}