외부에서 이미지를 끌어와 트래픽을 절약하는지라, 워드프레스의 미디어 추가 기능은 필요치 않았습니다. 가입하는 회원들에게도 미디어 업로드 기능을 제공할 생각이 없기도 하고…
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에 기록되어 효과가 지속된다고 합니다.
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
$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’ );
▲ 이런 식으로요.