회원권한에 따른 최신 댓글보기

안녕하세요. Kboard를 잘사용하고 있는 유저입니다. 최근 XE에서 워드프레스로 옮겨와서 열심히 배우고 있는데요.

한국형 게시판 플러그인 Kboard가 있어서 너무 좋습니다.

제가 문의 드리고 싶은 사항은 2가지 입니다. 

1.[최신댓글] 위젯에서 회원권한(Editor, Subscriber)에 따라  특정게시판(Editor 전용)의 댓글이 Editor에게만 보이고 Subscriber 않보이게 하는 방법?

2.[최신댓글] 위젯에서 특정 게시판의 댓글을 제외하는 방법?

이 두가지 입니다.  제대로 설명이 되었는지요?

 

그간 여러가지 소스를 가져다 [최신댓글] 이라는 위젯으로  사용하고 있는데요. 전체 게시판의 댓글을 가져다 보여주는 것이죠. 소스는  theme의 functions.php에 추가된 내용

// k보드
add_shortcode('kboard_latest_comments_test', 'kboard_latest_comments_test');
function kboard_latest_comments_test($args=array()){
 
    $url = new KBUrl();
    $list = new KBCommentList();
    $list->rpp = 15; // 불러올 댓글 개수
    $list->initWithKeyword();


     
    ob_start();
     
    echo '<ul>';
     
    while($comment = $list->hasNext()){
        $board = new KBoard();
        $board->initWithContentUID($comment->content_uid);
         
        echo '<li>';
        echo '<i class="fas fa-caret-square-right"></i>&nbsp;';
        echo '<a href="'.$url->getDocumentRedirect($comment->content_uid).'" target="_self">'; 
        echo mb_strimwidth($comment->content, 0, 43, '...', 'UTF-8');
         
        echo '</a>';
        
        echo '</li>';
    }
     
    echo '</ul>';
     
    return ob_get_clean();
}

이구요. 위젯에는 [kboard_latest_comments_test]  이렇게 써주었습니다.

그럼 답변기다리겠습니다. 참고 페이지 주소는 https://www.gashootersclub.com

감사합니다.

좋은 정보와 인맥을 동시에, 워드프레스 사용자 단톡방 참여하기
좋은 정보와 인맥을 동시에, 워드프레스 사용자 단톡방 참여하기
  • 안녕하세요~^^

    올려주신 숏코드 대신 아래의 숏코드를 위젯에 추가해보시겠어요?

    [kboard_latest_comments_test id="1"]

    위의 코드에서 id="1" 부분에는 제외할 특정 게시판의 id로 적용해보세요.

     

    테마 쪽 functions.php 파일에 추가하신 코드 대신 아래의 코드로 적용해보시겠어요?

    add_shortcode('kboard_latest_comments_test', 'kboard_latest_comments_test');
    function kboard_latest_comments_test($args=array()){
    	$url = new KBUrl();
    	$list = new KBCommentList();
    	$list->rpp = 15; // 불러올 댓글 개수
    	$list->initWithKeyword();
    	$user = get_userdata(get_current_user_id());
    	$user_roles = $user->roles;
    	
    	ob_start();
    	
    	echo '<ul>';
    	if(isset($args['id']) && $args['id'] != '1' && (in_array('administrator', $user_roles, true)||in_array('editor', $user_roles, true))){
    		while($comment = $list->hasNext()){
    			$board = new KBoard();
    			$board->initWithContentUID($comment->content_uid);
    			
    			echo '<li>';
    			echo '<i class="fas fa-caret-square-right"></i>&nbsp;';
    			echo '<a href="'.$url->getDocumentRedirect($comment->content_uid).'" target="_self">';
    			echo mb_strimwidth($comment->content, 0, 43, '...', 'UTF-8');
    			
    			echo '</a>';
    			
    			echo '</li>';
    		}
    	}
    	echo '</ul>';
    	
    	return ob_get_clean();
    }

    위의 코드에서 $args['id'] != '1' 부분에는 숏코드에 입력한 게시판 id로 적용해보세요.

    위의 코드 중에서 아래의 코드는 워드프레스 역할이 관리자인지 편집자인지 확인합니다.

    in_array('administrator', $user_roles, true)||in_array('editor', $user_roles, true))

    종합적으로, 위의 코드는 게시판 id가 1이 아닌 게시판의 댓글을 표시하며

    현재 사용자의 역할이 관리자이거나 편집자일때만 최신댓글을 표시합니다.

     

    추가로 KBoard 위젯 플러그인을 사용하시면

    최신글, 최신댓글, 추천글, 인기글, 공지사항, 내가쓴글, 내가쓴댓글을 표시하실 수 있으며

    제외할 게시판 기능을 기본적으로 제공하고 있습니다.

    고맙습니다.

좋은 정보와 인맥을 동시에, 워드프레스 사용자 단톡방 참여하기