안녕하세요.
케이보드 감사히 사용하고 있습니다.
이번에 케이보드를 활용하여 홈페이지를 만드는 중에 어려움을 겪고 있어서 문의 남깁니다.
게시판에서 답글을 달면 해당 글에 달린 모든 답글이 보이는데요.
특정 게시판에서 내가 단 답글만 리스트에서 보이고 다른 사람이 단 답글은 리스트에 노출되지 않게 하는 방법이 있을까요?
검토해주시고 방법 있다면 제시 부탁드립니다.
감사합니다.
안녕하세요~^^
KBoard 플러그인 게시글 목록 페이지에서
내가 쓴 답글만 표시하게 하시려면
KBoard 플러그인 코드를 수정해주셔야 할 듯합니다.
FTP로 접속해서 /wp-content/plugins/kboard/class/KBContentList.class.php 파일에
아래의 코드를 찾아서
public function getReplyList($parent_uid){
global $wpdb;
$where[] = "`parent_uid`='$parent_uid'";
// 휴지통에 없는 게시글만 불러온다.
$where[] = "(`status`='' OR `status` IS NULL OR `status`='pending_approval')";
$this->resource_reply = $wpdb->get_results("SELECT * FROM `{$wpdb->prefix}kboard_board_content` WHERE " . implode(' AND ', $where) . " ORDER BY `date` ASC");
$wpdb->flush();
return $this->resource_reply;
}
아래의 코드로 교체해보세요.
public function getReplyList($parent_uid){
global $wpdb;
$from[] = "`{$wpdb->prefix}kboard_board_content`";
$where[] = "`parent_uid`='$parent_uid'";
// 휴지통에 없는 게시글만 불러온다.
$where[] = "(`status`='' OR `status` IS NULL OR `status`='pending_approval')";
$select = apply_filters('kboard_reply_list_select', '*', $this->board_id, $this);
$from = apply_filters('kboard_reply_list_from', implode(' ', $from), $this->board_id, $this);
$where = apply_filters('kboard_reply_list_where', implode(' AND ', $where), $this->board_id, $this);
$orderby = apply_filters('kboard_reply_list_orderby', "`date` ASC", $this->board_id, $this);
$this->resource_reply = $wpdb->get_results("SELECT {$select} FROM {$from} WHERE {$where} ORDER BY {$orderby}");
$wpdb->flush();
return $this->resource_reply;
}
/wp-content/plugins/kboard/class/KBoardBuilder.class.php 파일에
아래의 코드를 찾아서
public function builderReply($parent_uid, $depth=0){
$list = new KBContentList();
아래의 코드로 교체해보세요.
public function builderReply($parent_uid, $depth=0){
$list = new KBContentList($this->board_id);
마지막으로, 워드프레스 관리자 -> 외모 -> 테마 편집기 페이지에서 functions.php 파일 하단에
아래의 코드를 추가해보세요.
add_filter('kboard_reply_list_where', 'my_kboard_reply_list_where', 10, 3);
function my_kboard_reply_list_where($where, $board_id, $content_list){
if($board_id == '1'){ // 실제 게시판 id로 적용해주세요.
$user_id = get_current_user_id();
if($user_id){
$where .= " AND `member_uid`='{$user_id}'";
}
else{
$where = "1=0";
}
}
return $where;
}
위의 코드에서 $board_id == '1' 부분은 실제 게시판 id로 적용해보세요.
코드 변경사항은 아래 링크에서도 확인 가능합니다.
위 변경사항은 추후 업데이트에 반영하도록 하겠습니다.
고맙습니다.