[워드프레스] 글쓴이가 자신의 글만 볼 수 있도록 제한하기

워드프레스 관리자 패널에서 글쓴이(Author)가 자신이 쓴 글만 볼 수 있도록 하려는 경우 다음 코드를 사용 중인 워드프레스 테마 함수 파일에 추가하면 됩니다. (반드시 차일드 테마를 만든 후에 차일드 테마의 함수 파일에 추가하시기 바랍니다. "원클릭으로 간편하게 차일드 테마 만들기" 참고)

function posts_for_current_author($query) {
global $pagenow;
if( 'edit.php' != $pagenow || !$query->is_admin )
return $query;
if( !current_user_can( 'manage_options' ) ) {
global $user_ID;
$query->set('author', $user_ID );
}
return $query;
}
add_filter('pre_get_posts', 'posts_for_current_author');
// 출처: wpsnipp.com

얼마 전에 여러 명이 참여하는 블로그에 Author로 참여했다가 다른 사람이 쓴 글의 목록이 함께 표시되는 것을 처음으로 알게 되었습니다. 그래서 위 코드를 함수 파일에 추가해보니 잘 작동했습니다. 편집자(Editor)의 경우 모든 글을 볼 수 있어야 하는데요, 위의 코드를 적용하면 편집자도 자신의 글만 볼 수 있을 것입니다.

만약 편집자에게 모든 글이 표시되도록 하려면 위에서 manage_optionsedit_others_posts로 바꾸면 될 것입니다(WordPress Codex 문서 참고).

그래도 잘 안 될 경우에는 다음 코드를 추가하면 편집자가 모든 글을 볼 수 있게 됩니다.

function posts_for_current_author($query) {
global $pagenow;

if( 'edit.php' != $pagenow || !$query->is_admin )
return $query;

if( !current_user_can( 'edit_others_posts' ) ) {
global $user_ID;
$query->set('author', $user_ID );
}
return $query;
}
add_filter('pre_get_posts', 'posts_for_current_author');

이 기능을 하는 플러그인으로 "Manage/View Your Posts Only"라는 플러그인이 있지만 업데이트가 안 된지 3년이나 되어서 현재 워드프레스 버전에서 제대로 작동할지 모르겠습니다.

일부 글에 제휴 링크가 포함될 수 있으며 파트너스 활동으로 일정액의 수수료를 받을 수 있습니다.

2개 댓글

  1. 저는 웬만하면 제 글만 볼 수 있게는 하지 않아요..
    간혹 웹서핑을 하다보면 이런 글이 올라 오던데 그러면 일기장을 하는 것이 더 낫지 않을까 해요..^^

    1. 위의 내용은 프런트엔드가 아니라 백엔드, 즉 관리자 페이지에서 여러 명의 Author 권한을 가진 사람들이 글을 작성할 때에 글 > 모든 글에 표시되는 글 목록에 대한 내용입니다.

댓글 남기기

* 이메일 정보는 공개되지 않습니다.