안녕하세요. 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> ';
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> ';
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 위젯 플러그인을 사용하시면
최신글, 최신댓글, 추천글, 인기글, 공지사항, 내가쓴글, 내가쓴댓글을 표시하실 수 있으며
제외할 게시판 기능을 기본적으로 제공하고 있습니다.
고맙습니다.