아이디에 등급 아이콘 표시와 익명 댓글 기능 동시 사용 불가

안녕하세요.

많은 쓰레드을 글을 보며 사이트 구축중인데요,

www.mediumm.net

 

회원 등급별 뱃지를 보이게 하는 코드

 

// 뱃지보이기

add_filter('kboard_user_display', 'my_kboard_user_display', 10, 5);
function my_kboard_user_display($user_display, $user_id, $user_name, $plugin, $builder){
    if($builder->board->id){
        $user = get_userdata($user_id);
        $user_roles = $user->roles;
        
        if(in_array('editor', $user_roles, true)){
            $user_display = '<img src="https://i.imgur.com/dHitqrE.png">' . $user_display;
        }
        else if(in_array('creator', $user_roles, true)){
            $user_display = '<img src="https://i.imgur.com/bqo7rLc.png">' . $user_display;
        }
        else if(in_array('client', $user_roles, true)){
            $user_display = '<img src="https://i.imgur.com/wDi43LB.png">' . $user_display;
        }
        else{
            $user_display = '<img src="">' . $user_display;
        }
        
    }
    
    
    return $user_display;


}

 

 

// 익명 댓글 기능

add_filter('kboard_user_display', 'my_kboard_user_display', 10, 5);
function my_kboard_user_display($user_display, $user_id, $user_name, $plugins, $boardBuilder){
    $board = $boardBuilder->board;
    
    if($plugins == 'kboard-comments' && $board->id == '1'){ // 실제 게시판 id로 적용해주세요.
        $skin_field = $board->fields()->getSkinFields();
        $author = $skin_field['author'];
        if($author['permission'] == 'always_hide'){
            $user_display = $author['default_value'];
        }
    }

    return $user_display;
}

 

을 동시에 functions.php 에 넣을 경우 코드 충돌인지

자꾸 사이트가 먹통이 되네요.

 

등급별 뱃지(아이콘)표시와 댓글 익명 두가지 기능을 동시에 사용하는 방법이 있을까요?

감사합니다.

 

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

    1. 댓글 작성자 쪽에 게시글 작성자를 표시하는 건

    이전에 비슷한 문의가 있었습니다.

    아래 관련 링크 참고 부탁드립니다.

    https://www.cosmosfarm.com/threads/document/48079

     

    2. 익명 뒤에 숫자가 계속 늘어나는 형식이 아닌

    기존에 작성했던 사용자일 경우 이전 숫자로 표시되게 하시려면

    워드프레스 사용자 메타(User Meta)를 활용하거나

    별도의 데이터베이스(DB) 테이블을 만들어서 코드를 작성해야 할 듯합니다.

     

    직접 코드를 수정하기 어려우시다면

    프로젝트 의뢰에 상세 내용을 올려보세요.

    https://www.cosmosfarm.com/project

    고맙습니다.

  • 말씀해주신대로 하니 깔끔하게 해결되었네요. 친절한 답변 감사합니다.

     

    혹시, 

     

    1. 댓글에 글 작성자는 '익명(작성자)'로 표기가 가능할지

    2. 모든 댓글이 '익명'으로 표기되는 것이 아닌 댓글을 적는 순서대로

    익명1, 익명2, 익명3의 순으로 표기되고 추후 익명1 사용자가 대댓글을 달면 익명4가 아닌 익명1로 재표기 되는 기능을 없을까요?

     

    검색하여 찾아낸 아래의 코드는 답변주신 익명 기능과 혼용이 안되는 것 같아서요.

    // 댓글 고유 id 부가 및 작성자 표시
    
    add_action('kboard_comments_insert', 'my_kboard_comments_insert', 10, 3);
    function my_kboard_comments_insert($insert_id, $content_uid, $board){
    	if($board->id == '14'){ // 실제 게시판 id로 적용해주세요.
    		$content = new KBContent();
    		$content->initWithUID($content_uid);
    		
    		$comment = new KBComment();
    		$comment->initWithUID($insert_id);
    		
    		if(is_user_logged_in()){
    			if($comment->user_uid == $content->member_uid){
    				$comment->user_display = $content->member_display . ' (작성자)';
    			}
    			else{
    				$comment->user_display = substr(uniqid(), -6);
    			}
    		}
    		else if(get_current_user_id() != $content->member_uid && $content->option->ip == kboard_user_ip()){
    			$comment->user_display = $content->member_display . ' (작성자)';
    		}
    		else{
    			$comment->user_display = substr(uniqid(), -6);
    		}
    		$comment->update();
    	}
    }

     

     

  • 안녕하세요~^^

    코드를 올려주실 때는 가독성을 위해 코드스니펫으로 올려주세요.

     

    결론먼저 말씀을 드리면 함수명이 my_kboard_user_display 로 똑같아서 그렇습니다.

    function [함수명] 에서 [함수명] 이 겹치면 에러가 발생합니다.

     

    하나는 my_kboard_user_display1, 다른 하나는 my_kboard_user_display2 등으로 하셔서

    분리 후 추가해보시겠어요?

    고맙습니다.

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