익명게시판에서 작성자만 공개하기

안녕하세요

add_filter('kboard_user_display', 'kboard_user_display_custom', 10, 5);

function kboard_user_display_custom($user_display, $user_id, $user_name, $plugin, $builder){

    $current_user_id = get_current_user_id();
    $board = isset($builder->board) ? $builder->board : null;

    if($board && method_exists($board, 'isAdmin') && !$board->isAdmin()){

        if($user_id && $user_id == $current_user_id){
            return '익명 (Me)';
        }

        return '익명';
    }

    return $user_display;
}

예전에 질문을 했고, 답변을 받아 익명으로 게시판을 운영하는 코드를 아주 잘 사용했습니다.

그런데 이번에 홈페이지를 수정하게 되면서 실행하고 싶은 아이디어가 생겼습니다.

스스로 응용도 해보고 챗GPT한테도 물어봤는데 제가 원하는 방법대로 되지 않거나 자꾸 에러가 떠서 질문드려요.

 

혹시, 익명 커뮤니티를 운영하는 와중에 "해당 글 작성자"만 아이디가 노출되는 방법이 있을까요?

나머지 댓글들은 모두 익명처리 (또는 익명(Me))되지만,

해당 글 작성자는 게시글에도, 댓글에도 본인 아이디가 그대로 노출되는걸 구현하고 싶습니다. (본인이 작성한 글에서만 본인 아이디가 노출 되고, 다른 글에 댓글을 남기면 작성자가 아니기 때문에 평범하게 익명처리)

 

항상 감사합니다!

좋은 정보와 인맥을 동시에, 워드프레스 사용자 단톡방 참여하기
워드프레스 에러 기술지원 서비스 전문가에게 맡기세요
  • 안녕하세요~^^

    아래 코드를 한번 사용해서 확인해보시겠어요?

    add_filter('kboard_user_display', 'kboard_user_display_custom', 10, 5);
    function kboard_user_display_custom($user_display, $user_id, $user_name, $plugin, $builder){
        $current_user_id = get_current_user_id();
        $board = isset($builder->board) ? $builder->board : null;
        // 특정 게시판 ID에서만 작동하게 하려면 아래 숫자를 해당 게시판 ID로 수정하세요.
        // 여러 개라면 in_array($board->id, array(1, 2, 3)) 처럼 사용할 수 있습니다.
        if($board && $board->id == '4'){ 
            
            // 관리자가 아닐 때만 익명 로직 적용
            if(method_exists($board, 'isAdmin') && !$board->isAdmin()){
                
                // 1. 게시글 작성자 본인인 경우 (게시글 리스트나 본문 상단)
                if($plugin == 'kboard'){
                    return $user_name;
                }
                
                // 2. 댓글인 경우
                if($plugin == 'kboard-comments'){
                    if(isset($builder->content_uid) && $builder->content_uid){
                        // 해당 게시글의 정보를 가져와 작성자 ID 확인
                        static $cache_post_authors = array();
                        if(!isset($cache_post_authors[$builder->content_uid])){
                            $content = new KBContent();
                            $content->initWithUID($builder->content_uid);
                            $cache_post_authors[$builder->content_uid] = $content->member_uid;
                        }
                        
                        $post_author_id = $cache_post_authors[$builder->content_uid];
                        
                        // 댓글 작성자가 원글 작성자라면 실명 노출
                        if($user_id && $post_author_id && $user_id == $post_author_id){
                            return $user_name;
                        }
                    }
                }
                // 3. 그 외 (작성자가 아니거나 로그인하지 않은 경우 등) 익명 처리
                if($user_id && $user_id == $current_user_id){
                    return '익명 (Me)';
                }
                return '익명';
            }
        }
        return $user_display;
    }

    고맙습니다.

워드프레스 에러 기술지원 서비스 전문가에게 맡기세요