워드프레스에서 여러 글쓴이 권한을 가진 사용자가 있는 경우 모든 미디어 파일을 볼 수 있게 됩니다. 심지어 관리자와 편집자(Editor)가 올린 미디어 파일까지 접근이 가능하게 됩니다.
사용자에게 자신이 올린 미디어 파일만 표시되도록 하고 싶은 경우가 있을 수 있습니다. 그런 경우 두 가지 방법이 있습니다.
플러그인을 사용하여 사용자가 자신의 미디어에만 접근하도록 권한 제한하기
Restrict Media Library Access를 사용하면 글쓴이(Author)와 기여자(Contributor)가 자신이 올린 미디어 라이브러리만 볼 수 있도록 접근 권한을 제한할 수 있습니다.
이 플러그인은 두 가지의 주요 기능을 제공합니다.
- 미디어 라이브러리의 규모가 커질 때 글쓴이가 자신이 업로드한 파일을 쉽게 찾을 수 있도록 합니다.
- 다른 글쓴이가 올린 미디어 파일을 사용하거나 다운로드하는 것을 방지합니다.
코드를 사용하여 사용자의 미디어 접근 권한을 제한하기
플러그인을 사용하는 것이 쉬운 방법이지만, 플러그인 사용이 꺼려진다면 다음과 같은 코드를 사용할 수 있습니다. (플러그인 개수는 가능한 한 최소화하는 것이 바람직합니다.)
// 미디어 라이브러리 접근 제한하기 add_filter( 'ajax_query_attachments_args', 'wpb_show_current_user_attachments' ); function wpb_show_current_user_attachments( $query ) { $user_id = get_current_user_id(); if ( $user_id && !current_user_can('activate_plugins') && !current_user_can('edit_others_posts ') ) { $query['author'] = $user_id; } return $query; }
위의 코드를 사용 중인 테마의 함수 파일에 추가하도록 합니다. 가급적이면 차일드 테마를 만들어서 작업하시기 바랍니다.
위의 코드가 원하는 대로 작동하지 않으면 다음 코드를 시도해볼 수 있습니다.
/** * Allow access to own content only, 자신의 콘텐츠에만 접근하도록 허용 */ function my_authored_content($query) { //get current user info to see if they are allowed to access ANY posts and pages $current_user = wp_get_current_user(); // set current user to $is_user $is_user = $current_user->user_login; //if is admin or 'is_user' does not equal #username if (!current_user_can('manage_options')){ //if in the admin panel if($query->is_admin) { global $user_ID; $query->set('author', $user_ID); } return $query; } return $query; } add_filter('pre_get_posts', 'my_authored_content'); // 출처: freewebmentor.com
댓글 남기기