작성자 마스킹 적용 질문

안녕하세요. 글 올리기 전 마스킹 관련 글은 모두 읽어보고 적용도 해봤습니다.
최종적으로 적용한 코드는 테마의 funtion 의 다음과 같습니다.

add_filter('kboard_user_display', 'kboard_user_display', 10, 5);
function kboard_user_display($user_display, $user_id, $user_name, $plugin, $builder){
    $board = $builder->board;
    if($board->id == '5'){ // 실제 게시판 id로 적용해주세요.
        // 이곳에 코드를 추가해보세요.
        $strlen = mb_strlen($user_display, 'utf-8');
        
        if($strlen > 3){
            $showlen = 2;
        }
        else{
            $showlen = 2;
        }
        
        $user_display = mb_substr($user_display, 0, $showlen, 'utf-8') . str_repeat('*', $strlen-$showlen);
    }
    return $user_display;
}

1. 이 코드 적용시 댓글의 작성자가 아예 안보입니다. 이유가 뭘까요?
2. 관리자는 마스킹을 풀고 싶은데 수정해야 할 부분을 알려주실 수 있을까요?
3. 관리자로 로그인 시 마스킹 해제 할 수 있는 방법(이것도 찾아보고 적용했는데 워드프레스 치명적인 오류 뜨면서 로딩이 아예안되네요ㅠㅠ)

질문이 많네요..ㅠㅠ감사합니다!

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

    kboard_user_display 필터로 마스킹 처리 시

    관리자의 작성자명과 관리자로 로그인 시 작성자명을 마스킹 처리하지 않게 하시려면

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

    add_filter('kboard_user_display', 'kboard_user_display_20210716', 10, 5);
    function kboard_user_display_20210716($user_display, $user_id, $user_name, $plugin, $builder){
    	$board = $builder->board;
    	if(!$board->isAdmin() && !$board->isAdmin($user_id) && $board->id == '1'){ // 실제 게시판 id로 적용해주세요.
    		// 이곳에 코드를 추가해보세요.
    		$strlen = mb_strlen($user_name, 'utf-8');
    		
    		if($strlen > 3){
    			$showlen = 2;
    		}
    		else{
    			$showlen = 1;
    		}
    		
    		$user_display = mb_substr($user_name, 0, $showlen, 'utf-8') . str_repeat('*', $strlen-$showlen);
    	}
    	return $user_display;
    }

    위의 코드에서 $board->id == '1' 부분은 실제 게시판 id로 적용해주세요.

     

    $board->isAdmin() 코드로 관리자인지 체크하실 수 있습니다.

    $board->isAdmin($user_id) 코드처럼 파라미터로 사용자 ID를 넘겨주시면

    ID로 구분해서 관리자인지 체크하실 수 있습니다.

    고맙습니다.

  • 친절한 답변 정말 감사합니다!

    바로 적용해봤는데 잘 되네요!

    혹시 실례가 안된다면 하나 더 여쭙고 싶은데
    게시판의 모든 글을 비밀글로 할 생각인데

    관리자 로그인이 아닌 상태에서
    비밀글의 비밀번호를 누르고 글을 열었을때 이름에 마스킹을 풀 수 있는 법이 있을까요?

    만약에 있다면 알려 주실 수 있을까요?

    감사합니다!

  • 게시글 본문에서는 작성자명을 정상적으로 표시되게 하시려면

    !$board->isAdmin() && !$board->isAdmin($user_id) && $board->id == '1' 부분을

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

    kboard_mod() != 'document' && !$board->isAdmin() && !$board->isAdmin($user_id) && $board->id == '1'

    고맙습니다.

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