워드프레스 미디어 추가(이미지 업로드) 못하게 설정하기(권한 박탈)

외부에서 이미지를 끌어와 트래픽을 절약하는지라, 워드프레스의 미디어 추가 기능은 필요치 않았습니다. 가입하는 회원들에게도 미디어 업로드 기능을 제공할 생각이 없기도 하고…

▲ 클래식 에디터에서는 “미디어 추가” 기능을 통해 서버에 사진을 올립니다.

▲ 구텐베르크 에디터에서는 이미지 추가/파일 추가 버튼을 통해 서버에 사진을 올리고요.

PHP 설정 파일에서 파일 업로드를 금지하는 방법도 있겠으나, 그렇게 하면 다른 CMS를 설치했을 때 영향을 미치기 때문에 워드프레스 자체 기능으로 해결하는 방법이 없을까 하고 찾아봤습니다.

https://wordpress.stackexchange.com/questions/99248/disable-media-uploads-to-non-admin-users
▲ 훌륭한 문서를 발견!

$role = get_role( ‘author’ );
$role -> remove_cap( ‘upload_files’ );
▲ 만약 Author 역할의 업로드 권한을 없애려면 위의 코드를 1회 작동시키라고 하네요. 한 번 작동하면 DB에 기록되어 효과가 지속된다고 합니다.

▲ 그렇다면 wp-config.php 하단에 코드를 추가하고 홈페이지에 한 번 접속하면 되겠죠! 메인화면 로딩이 끝나면 코드를 제거하고.

Author 말고 다른 역할에 upload_files 권한이 부여된 경우가 있는지 찾아봤습니다.

https://codex.wordpress.org/Roles_and_Capabilities
▲ 역할의 종류에는 “구독자(Subscriber), 기여자(Contributor), 글쓴이(Author), 편집자(Editor), 관리자(Administrator), Super Admin” 이 있고…

https://codex.wordpress.org/Roles_and_Capabilities#Capability_vs._Role_Table

▲ upload_files 권한은 Administrator, Editor, Author 가 가진다고…

$role = get_role( ‘editor’ );
$role -> remove_cap( ‘upload_files’ );
▲ 편집자(Editor)의 파일 업로드를 막는 코드

$role = get_role( ‘administrator’ );
$role -> remove_cap( ‘upload_files’ );
▲ 관리자(Administrator)의 파일 업로드를 막는 코드

이렇게 역할만 바꿔서 입력하면 되겠네요.

현재 권한으로는 이미지를 올릴 수 없고 이미지 링크만 등록할 수 있습니다.

▲ 적용이 되면 업로드 권한이 없다고 뜹니다. 뿌듯하네요.

 

https://codex.wordpress.org/Function_Reference/remove_cap
https://codex.wordpress.org/Function_Reference/add_cap
▲ 추가적으로 참고한 문서들

미디어 추가를 다시 할 수 있도록 하려면 add_cap 함수를 쓰면 되겠습니다.

$role = get_role( ‘author’ );
$role -> add_cap( ‘upload_files’ );
▲ 이런 식으로요.

CC BY-NC-ND 4.0