ップロードした画像は、アップロードした投稿者本人しか見えないようにする
WordPressのSNSプラグイン、BuddyPressを導入すると不特定多数のメンバーが参加することになる。
管理者ではなく、参加するメンバーが記事を投稿した場合、誰でも全員の投稿を見れるようになっているのをカスタマイズして、自分の投稿のみ表示するようにした。
・投稿者の「投稿画面」では、自分の投稿のみ表示させる方法で紹介した。
でも、そのままでは、アップロードした画像などのメディアが全て見えてしまうので、そこを修正。
functions.php へ記述
//upした画像は自分のみ表示
function show_only_authorimage( $where ){ global $current_user; if(is_admin()){ //管理画面 if(current_user_can('author') ){ //投稿者権限の場合のみ if( isset( $_POST['action'] ) && ( $_POST['action'] == 'query-attachments' ) ){ $where .= ' AND post_author='.$current_user->data->ID; //UPした人のIDと今のIDが同じ場合のみ表示 }}} return $where; } add_filter( 'posts_where', 'show_only_authorimage' );
これで自分でアップロードした画像のみ表示される(上の例では投稿者権限の場合のみ)。
合わせて変更が必要なカスタマイズ案
こちらも参照。