워드프레스 게시판 KBoard에서
특정게시판 하나를 자신이 쓴 글만 리스트에 나오게 하고 관리자는 모든 글을 다 볼수 있게 하려고 합니다.
검색으로 테마의 functions.php에 아래 코드를 넣으면 된다고 해서 넣어봤습니다.
add_filter('kboard_list_where', 'my_kboard_list_where', 10, 2);
function my_kboard_list_where($where, $board_id){
if(!is_admin()){
$user_ID = get_current_user_id();
return $where . " AND `member_uid`='$user_ID'";
}
return $where;
}
그런데 functions.php에 넣으니 모든 게시판에 적용이 되버리네요.
그리고 유저는 본인글만 보이긴 하지만 관리자도 자신의 글만 보이고 다른 유저가 작성한 글이 보이질 않습니다.
전체 게시판 말고 특정게시판 스킨 수정으로 해당 게시판에만 적용시킬수는 없을까요?
조언 부탁드립니다.
아래 처럼 특정 게시판 ID 값을 체크해서 원하시느 게시판만 적용할 수 있습니다.
add_filter('kboard_list_where', 'my_kboard_list_where', 10, 2);
function my_kboard_list_where($where, $board_id){
if(!is_admin() && $board_id=='1'){ // 원하시는 게시판 ID 값으로 바꿔주세요.
$user_ID = get_current_user_id();
return $where . " AND `member_uid`='$user_ID'";
}
return $where;
}
도움이 될까요?
감사합니다.
특정게시판에만 적용시키는건 해결이 되었는데 여전히 관리자도 자신의 글만 보입니다.
관리자는 모든 글을 볼수 있어야 하는데 적용이 안되고 있습니다.
뭐가 문제일까요? ㅠㅠ
add_filter('kboard_list_where', 'my_kboard_list_where', 10, 2);
function my_kboard_list_where($where, $board_id){
if(!is_super_admin() && $board_id=='1'){ // 원하시는 게시판 ID 값으로 바꿔주세요.
$user_ID = get_current_user_id();
return $where . " AND `member_uid`='$user_ID'";
}
return $where;
}
이렇게 해보시면 어떤지요?
해결됐습니다.
is_super_admin() 으로 바꾸니까 되네요.
피드백도 바로바로 주시고 정말 감사드립니다.
역시 kboard 짱입니다. ^_^
beijing님 해결되어 다행입니다 :D
관련하여 추가 문의 드립니다.
관리자의 경우 해당 모든 글들이 보이지만 예를들어 "편집자" 또는 "글쓴이" 권한에도 동일하게 적용을 해야한다면, 어떤코드를 추가해야 할지 문의드립니다.
그럼 확인 부탁 드립니다.
안녕하세요~^^
"편집자" 또는 "글쓴이" 권한에도 자신이 쓴 글의 리스트만 나오게 하고 싶다는 말씀이신지요?
위에 안내드린 코드는
관리자만 게시글을 모두 볼 수 있고 다른 권한의 사용자는 자신이 쓴 글만 볼 수 있는 코드입니다.
고맙습니다.