1:1게시판 이전글 다음글 문의

케이보드 게시판 중 두개를 권한설정->리스트보기에서 "본인의 글만 보기"로 설정하여 관리자와의 1:1 게시판으로 운영중입니다. 

관리자와의 1:1 게시판이지만 공지사항은 모두에게 보여진다는 점이 좋아서 아주 유용하게 사용중인데요.....

게시판에 있는 게시글을 클릭하여 페이지를 오픈하였을때 제일 밑에 보이는 이전글 다음글에 다른 작성자들이 쓴 게시글 제목이 보이는 것을 안보이게 만들수 있는지 궁금합니다

https://imgur.com/a/HDRVsPE

현재 사이트에서 보여지는 이전글 다음글에는 모든 회원들이 작성한 게시글 제목들이 나타나는데요,

혹시 이전글 다음글로 보이는 것은 관리자가 작성한 공지사항과 1:1게시판을 쓰는 해당 회원이 작성한 글만 뜨게 만들 수 있을까요??

"이 게시글은 본인만 읽을 수 있습니다."라는 문구와 함께 다른 회원이 작성한 글을 볼 수 없다는 것은 알고 있지만, 이전글 다음글에 다른 회원들이 적은 게시글 제목조차 안보이게 만들 수 있는지 궁금합니다 (물론 관리자는 모든 회원들의 글을 볼수있으니까 지금처럼 이전글 다음글에 모든 게시글 제목이 떴으면 좋겠어요....)

좋은 정보와 인맥을 동시에, 워드프레스 사용자 단톡방 참여하기
워드프레스 에러 기술지원 서비스 전문가에게 맡기세요
  • 안녕하세요~^^

    KBoard 플러그인 본인의 글만 보기 설정 시 이전 다음 게시글에도

    본인의 글만 표시되게 하시려면 KBoard 플러그인 파일을 수정해주셔야 합니다.

     

    FTP로 접속해서 /wp-content/plugins/kboard/class/KBContent.class.php 파일에

    아래의 코드를 찾아서

    $where = implode(' AND ', $where);
    $uid = $wpdb->get_var("SELECT `uid` FROM `{$wpdb->prefix}kboard_board_content` WHERE {$where} ORDER BY `{$order_by_sort}` ASC LIMIT 1");

    아래의 코드로 교체해보세요.

    $board = $this->getBoard();
    if($board->isPrivate()){
    	if(is_user_logged_in()){
    		$user_id = get_current_user_id();
    		$where[] = "`member_uid`='{$user_id}'";
    	}
    }
    
    $where = implode(' AND ', $where);
    $uid = $wpdb->get_var(apply_filters('kboard_content_next_uid_query', "SELECT `uid` FROM `{$wpdb->prefix}kboard_board_content` WHERE {$where} ORDER BY `{$order_by_sort}` DESC LIMIT 1", $this, $where, $sorting, $order_by_sort, $category1, $category2));

     

    아래의 코드를 찾아서

    $where = implode(' AND ', $where);
    $uid = $wpdb->get_var("SELECT `uid` FROM `{$wpdb->prefix}kboard_board_content` WHERE {$where} ORDER BY `{$order_by_sort}` DESC LIMIT 1");

    아래의 코드로 교체해보세요.

    $board = $this->getBoard();
    if($board->isPrivate()){
    	if(is_user_logged_in()){
    		$user_id = get_current_user_id();
    		$where[] = "`member_uid`='{$user_id}'";
    	}
    }
    
    $where = implode(' AND ', $where);
    $uid = $wpdb->get_var(apply_filters('kboard_content_prev_uid_query', "SELECT `uid` FROM `{$wpdb->prefix}kboard_board_content` WHERE {$where} ORDER BY `{$order_by_sort}` DESC LIMIT 1", $this, $where, $sorting, $order_by_sort, $category1, $category2));

    위와 같이 코드를 수정하시면 이전 다음 게시글에 본인이 작성한 게시글만 표시됩니다.

     

    해당 코드 변경 사항은 아래 링크에서도 확인 가능합니다.

    https://github.com/cosmosfarm/KBoard-wordpress-plugin/blob/master/plugins/kboard/class/KBContent.class.php

    추후 업데이트에 해당 내용을 반영하도록 하겠습니다.

     

    kboard_content_prev_uid_query 필터, kboard_content_next_uid_query 필터를 활용해서

    이전 다음 게시글 불러오는 DB 쿼리문을 편집하실 수 있습니다.

    사용 예제 코드는 아래와 같습니다.

    add_filter('kboard_content_prev_uid_query', 'kboard_content_prev_uid_query_20201026', 10, 7);
    function kboard_content_prev_uid_query_20201026($query, $content, $where, $sorting, $order_by_sort, $category1, $category2){
    	global $wpdb;
    	
    	$board = $content->getBoard();
    	if($board->id == '1'){ // 실제 게시판 id로 적용해주세요.
    		// 이곳에 코드를 추가해보세요.
    	}
    	
    	return $query;
    }
    
    add_filter('kboard_content_next_uid_query', 'kboard_content_next_uid_query_20201026', 10, 7);
    function kboard_content_next_uid_query_20201026($query, $content, $where, $sorting, $order_by_sort, $category1, $category2){
    	global $wpdb;
    	
    	$board = $content->getBoard();
    	if($board->id == '1'){ // 실제 게시판 id로 적용해주세요.
    		// 이곳에 코드를 추가해보세요.
    	}
    	
    	return $query;
    }

    테마의 functions.php 파일에 코드를 추가하거나 Code Snippets 플러그인을 사용해서 코드를 추가할 수 있습니다.

    고맙습니다.

  • 코드를 적용했는데 왼쪽 아래에 표시되는 게시글 제목이 바뀌지 않네요ㅠㅠ

    다른 게시글을 클릭했을때 오른쪽 아래에 표시되는 제목은 계속 변경되지만 왼쪽 아래에 표시되는 제목은 무조건 게시판에 떠있는 제일 첫번째 글으로 표시되고 있는 상황입니다ㅠㅠㅠㅠ

  • 이전 댓글에 안내해드린 코드로 변경 후 문제가 생기신 건지요?

    해당 문제는 저희가 직접 확인을 해봐야 도움을 드릴 수 있을 듯합니다.

    저희 고객지원 쪽 이메일로 워드프레스 관리자 계정과 FTP 접속 정보를 보내주시면 점검해드리겠습니다.

    고맙습니다.

워드프레스 에러 기술지원 서비스 전문가에게 맡기세요