안녕하세요 Kboard로 게시판 만들어 사용중입니다.
권한 설정 중 관리자 승인 활성화 하여 쓰고 있는데요.
다른 유저에게 작성자 권한을 주어 글쓰기를 하고 있습니다.
승인 대기 중일때 목록에서 보이는 것이 싫어서
add_filter('kboard_list_where', 'my_kboard_list_where', 10, 3);
function my_kboard_list_where($where, $board_id, $content_list){
if($board_id == '1'){
$where .= "AND (`status`='' OR `status` IS NULL)";
}
return $where;
}
검색 후 이 소스를 function.php에 삽입했는데요.
문제는 관리자가 승인하기 전까지 작성자가 자신의 글을 볼 수 없다는 것입니다.... (목록에서 아예 사라짐)
권한이 없는 구독자나 비회원에게는 리스트에 승인대기 글들이 목록에서 보이지 않으면서
작성자는 자신의 글을 볼 수 있게 할 순 없을까요?
답변 부탁드립니다.
감사합니다.
안녕하세요~^^
KBoard 플러그인에서 관리자 승인 기능을 사용할 때
kboard_list_where 필터를 활용해서 로그인 사용자는 승인된 게시글 + 자신의 게시글을 표시하고
비회원 사용자에게는 승인된 게시글만 표시되게 하고 싶으신 건지요?
아래의 코드를 활용해보시겠어요?
add_filter('kboard_list_where', 'my_kboard_list_where', 10, 3);
function my_kboard_list_where($where, $board_id, $content_list){
if($board_id == '1'){ // 실제 게시판 id로 적용해주세요.
$user_id = get_current_user_id();
if($user_id){
$where .= "AND (`status`='' OR `status` IS NULL) OR `member_uid`='{$user_id}'";
}
else{
$where .= "AND (`status`='' OR `status` IS NULL)";
}
}
return $where;
}
위의 코드를 적용하시면
관리자는 워드프레스 관리자에서만 게시글이 확인 가능합니다.
일반 게시글 목록 페이지에서도 관리자는 모든 게시글을 볼 수 있게 하시려면
아래의 코드를 활용해보세요.
add_filter('kboard_list_where', 'my_kboard_list_where', 10, 3);
function my_kboard_list_where($where, $board_id, $content_list){
if($board_id == '1'){ // 실제 게시판 id로 적용해주세요.
$user_id = get_current_user_id();
if($user_id){
$board = new KBoard($board_id);
if(!$board->isAdmin()){
$where .= "AND (`status`='' OR `status` IS NULL) OR `member_uid`='{$user_id}'";
}
}
else{
$where .= "AND (`status`='' OR `status` IS NULL)";
}
}
return $where;
}
고맙습니다.
답변 감사합니다!
원하는대로 잘 나와요~
내용에 코드를 올려주실 땐 에디터의 "코드 스니펫 삽입" 기능을 사용해주시길 부탁드립니다.
고맙습니다.