functions.php 파일에 아래의 코드를 넣어 메뉴에 new 표시를 뜨게 만드려고 합니다
add_shortcode('kboard_new_text', 'kboard_new_text');
function kboard_new_text($args=array()){
global $wpdb;
$board_id = 0;
if(isset($args['id']) && $args['id']){
$board_id = intval($args['id']);
}
if($board_id){
$notify_time = kboard_new_document_notify_time();
if($notify_time != '1'){
$timestamp = current_time('timestamp') - $notify_time;
$date = date('YmdHis', $timestamp);
$count = $wpdb->get_var("SELECT COUNT(*) FROM `{$wpdb->prefix}kboard_board_content` WHERE `board_id`='$board_id' AND `date`>='$date' AND (`status`='' OR `status` IS NULL OR `status`='pending_approval')");
if($count){
return '<span class="kboard-new-text">NEW</span>';
}
}
}
return '';
}
그런데 new 표시를 관리자만 보게 할 수 있을까요??
케이보드에서 $board->isAdmin() 코드를 넣으면 관리자만 볼수있다는건 커뮤니티 검색을 통해서 알게되었지만, 막상 위의 코드 안에 어떻게 넣어야될지 잘모르겠습니다;;;
안녕하세요~^^
별도로 숏코드를 만들어서 $board->isAdmin() 코드를 활용하시려면
KBoard 클래스를 활용해보시겠어요?
게시판 번호로 초기화해서 활용해보세요.
예제 코드는 아래와 같습니다.
$board = new KBoard($board_id);
KBoard 클래스 파일은
FTP로 접속해서 /wp-content/plugins/kboard/class/KBoard.class.php 파일에서 확인해보실 수 있습니다.
추가로, KBoard 플러그인의 클래스 외에도
워드프레스 current_user_can 함수를 활용하시면
현재 사용자의 권한을 체크하실 수 있습니다.
자세한 내용은 아래의 링크를 참고해보세요.
https://developer.wordpress.org/reference/functions/current_user_can/
워드프레스 역할과 권한에 대한 설명은
아래의 링크를 참고해보세요.
https://wordpress.org/support/article/roles-and-capabilities/
고맙습니다.
이해가 잘 되지 않아서 다시 한번 질문드리는점 죄송합니다
$board->isAdmin() 코드를 활용하려면 별도의 숏코드를 만들어야된다는건가요??
https://blog.naver.com/PostView.nhn?blogId=chan2rrj&logNo=221256696712
위의 게시글을 보고 따라한건데 별도의 코드를 /wp-content/plugins/kboard/class/KBoard.class.php 파일에 입력해야되나요??
안녕하세요.
이전 댓글에 안내해드린 KBoard 클래스를 활용하는 건
다른 숏코드가 아닌 kboard_new_text 숏코드 쪽에 추가해주시면 됩니다.
KBoard.class.php 파일은 수정하지 않으셔도 됩니다.
실제 적용 코드는 아래와 같습니다.
add_shortcode('kboard_new_text', 'kboard_new_text');
function kboard_new_text($args=array()){
global $wpdb;
$board_id = 0;
if(isset($args['id']) && $args['id']){
$board_id = intval($args['id']);
}
if($board_id){
$board = new KBoard($board_id);
if($board->isAdmin()){
$notify_time = kboard_new_document_notify_time();
if($notify_time != '1'){
$timestamp = current_time('timestamp') - $notify_time;
$date = date('YmdHis', $timestamp);
$count = $wpdb->get_var("SELECT COUNT(*) FROM `{$wpdb->prefix}kboard_board_content` WHERE `board_id`='$board_id' AND `date`>='$date' AND (`status`='' OR `status` IS NULL OR `status`='pending_approval')");
if($count){
return '<span class="kboard-new-text">NEW</span>';
}
}
}
}
return '';
}
확인해보시겠어요?
고맙습니다.