アップロードディレクトリ設定
メディアのアップロードディレクトリをユーザー毎に変えます。
ファイル名の重複を防止できます。
アップロード先のディレクトリは、下記になります。
uploads/users/user_ユーザーID;
本来アップロード権限のない寄稿者もディレクトリを設定します。
ユーザ用ルートディレクトリやユーザ別アップロードディレクトリが存在しない場合は作成します。
コード
// -------------------------------- // アップロードディレクトリ設定 // -------------------------------- function hk_functions_upload_dir( $uploads ) { // user_id $user_id = get_current_user_id(); // ユーザ用ルートディレクトリ $dir = WP_CONTENT_DIR.'/uploads/users'; if ( ! file_exists( $dir ) ) { umask( 0 ); mkdir( $dir ); } // ユーザ別アップロードディレクトリ $dir = WP_CONTENT_DIR.'/uploads/users/user_'.$user_id; if ( ! file_exists( $dir ) ) { umask( 0 ); mkdir( $dir ); } // アップロードディレクトリ設定 $subdir = '/users/user_'.$user_id; $uploads['path' ] = $uploads['path'].$subdir; // $dir $uploads['url' ] = $uploads['url' ].$subdir; // $url $uploads['subdir'] = $subdir; return $uploads; } add_filter( 'upload_dir', 'hk_functions_upload_dir' );
投稿者・寄稿者 本人のメディアのみ表示
投稿者・寄稿者の場合、“メディア一覧”と“メディアを追加”に本人のメディアのみ表示します。
コード
// -------------------------------- // メディア一覧 // メディアを追加(JavaScript) // 投稿者・寄稿者 本人のメディアのみ表示 // -------------------------------- function hk_functions_pre_get_posts( $wp_query ) { // 管理者・編集者除外 if (( current_user_can('administrator') ) || ( current_user_can('editor') )) return; // 投稿者・寄稿者の場合 $post_type = $wp_query->get('post_type'); // 添付ファイルかどうか if ( empty( $post_type ) ) return; if ( is_array( $post_type ) ) { if ( ! in_array( 'attachment', $post_type ) ) return; } else { if ( $post_type != 'attachment' ) return; } // パラメータ設定 $wp_query->set( 'author', get_current_user_id() ); return; } add_action( 'pre_get_posts', 'hk_functions_pre_get_posts' );
このプログラムをお使いになる場合は、お使いになる方の自己責任でお願いします。