WordPressで他の人がアップロードした画像を参照できないようにする方法

WordPressで他の人がアップロードした画像を参照できないようにする方法

WordPressで他の人がアップロードした画像を参照できないようにする方法
  • シェアしてね♪
  • このエントリーをはてなブックマークに追加


  • 一式98,000円~の格安プランをご用意!Web制作お任せください!
  • このエントリーをはてなブックマークに追加

WordPressで画像をアップロードする際、デフォルトの状態ではメディアライブラリで他の人がアップロードした画像も参照することができます。

問題があるというわけではないと思いますが、複数人でブログを運営する時に、他の人がアップロードした画像は見せたくないというケースも出てくると思います。

そこで今回は、メディアライブラリで他の人がアップロードした画像を参照できないようにする方法を紹介したいと思います。

スポンサードリンク

他の人がアップロードした画像を参照できないようにする方法

他の人がアップロードした画像を参照できないようにするためには、functions.phpに以下のコードを追加します。

functions.php
function display_only_self_uploaded_medias( $wp_query ) {
if ( is_admin() && ( $wp_query->is_main_query() || ( defined( 'DOING_QUERY_ATTACHMENT' ) && DOING_QUERY_ATTACHMENT ) ) && $wp_query->get( 'post_type' ) == 'attachment' ) {
$user = wp_get_current_user();
$wp_query->set( 'author', $user->ID );
}
}
function define_doing_query_attachment_const() {
if ( ! defined( 'DOING_QUERY_ATTACHMENT' ) ) {
define( 'DOING_QUERY_ATTACHMENT', true );
}
}
get_currentuserinfo();
if($current_user->user_level < 10){
add_action( 'pre_get_posts', 'display_only_self_uploaded_medias' );
add_action( 'wp_ajax_query-attachments', 'define_doing_query_attachment_const', 0 );
}

これで、自分がアップロードした画像やファイルしか参照できないようになります。

なお、管理者は例外で、すべての画像・ファイルを参照することができます。

※2015/11/15追記
Simple Colorsさんで、WordPress3.7以降では以下の方法が推奨されていました。この方がシンプルになっていいですね。
functions.php
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' );

あとがき

自分がアップロードした画像のみが参照できる方が、記事の投稿がやりやすくなるかもしれませんね。

複数人でブログを運営する際は、ぜひ参考にしていただければと思います。

この記事が気に入ったら
いいね!してね♪

Twitter で
スポンサードリンク

関連記事

コメントを残す

メールアドレスが公開されることはありません。