익명게시판에서의 댓글

안녕하세요,

 

익명게시판에서 글/댓글 작성자가 관리자일 경우 관리자 아이디가 그대로 표시되도록 하고싶습니다. 

현재 list.php에선:

 

                    /* 댓글작성시 author&password 없애기*/ ?>
                    <?php if(is_user_logged_in()):?>
                    <input type="hidden" name="member_display" value="<?php echo $member_display?>"
                    <?php else:?>
                    <input type="hidden" name="member_display" value="익명">
                    <input type="hidden" name="password" value="<?php echo uniqid()?>">
                    <?php endif?>

로 해놨고 functions.php에선:

/* 익명게시판 익명댓글*/
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;
    /*$user_id = get_current_user_id();*/
    
    if($plugins == 'kboard-comments' && $board->id == '1'){ // 실제 게시판 id로 적용해주세요.
        $skin_field = $board->fields()->getSkinFields();
        $author = $skin_field['author'];
        if($author['permission'] == 'always_hide' && $board->isAdmin()){
            $user_display = $author['default_value'];
        }
        else {
            $user_display = $user_name;
        }
    }

    return $user_display;
}

 

로 해놨습니다. 결과적으로 로그인을 하지 않은 유저는 익명으로 나오지만, 관리자로 들어갔을때는 아이디 표기가 1로 됩니다. 아이디로 나오게끔 어떻게 해야할까요?

정말 감사합니다!!

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

    코드만 봐서는 어떻게 하고 싶으신 건지 이해가 잘 가지 않습니다.

    작성자 필드가 항상 숨김일 경우 관리자에게는

    기본값으로 표시되고 일반 사용자들에게는 기존의 작성자명으로 표시됩니다.

     

    로그인 사용자는 작성자명이 그대로 저장되며

    비회원의 작성자명은 익명으로 고정됩니다.

     

    어떻게 하고 싶으신 건지 좀 더 구체적으로 설명해주시겠어요?

    고맙습니다.

  • 안녕하세요,

    제가 이루고자 하는것은, 관리자는 관리자로 나오고 나머지 유저는 다 익명으로 나오게끔 하는것입니다 (로그인이 되었던 로그인이 되지 않았던)

    제가 올린 코드에서 다음과 같은 코드를 추가하니 1로 뜨던 관리자 대신해서 text로 변환되긴 하지만 이건 주먹구구식으로 만든 코드라 나중에 문제가 될 것 같아서요:

     

    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' && $board->isAdmin()){
                $user_display = $author['default_value'];
                return $user_display;
            }
            else {
                $user_display = $user_name;
                if ($user_name == '1') {
                    $user_display = "<div style='color:red !important;'>오야붕</div>";
                    return $user_display;
                }
                return $user_display;
            }
        }

        return $user_display;
    }

     

    감사합니다.

  • 프로그램 코드를 올려야 할 경우 반드시 에디터의 코드 스니펫 삽입 기능을 사용해주세요. (가독성이 좋아집니다.)

    그렇지 않으면 에러가 나는 코드로 바뀌거나 질의응답 시 의사소통에 문제가 있을 수도 있습니다.

     

    KBoard 댓글 쪽에서 관리자의 댓글에는 작성자명에 관리자로 표시하고

    그 이외의 사용자 작성자명에는 익명으로 표시되게 하시려면

    올려주신 코드 대신 아래의 코드를 활용해보시겠어요?

    add_filter('kboard_user_display', 'kboard_user_display_20201130', 10, 5);
    function kboard_user_display_20201130($user_display, $user_id, $user_name, $plugins, $boardBuilder){
    	$board = $boardBuilder->board;
    	
    	if($plugins == 'kboard-comments' && $board->id == '1'){ // 실제 게시판 id로 적용해주세요.
    		if($board->isAdmin($user_id)){
    			$user_display = '관리자';
    		}
    		else{
    			$user_display = '익명';
    		}
    	}
    	
    	return $user_display;
    }

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

     

    테마의 functions.php 파일에 코드를 추가하거나 Code Snippets 플러그인을 사용해서 코드를 추가할 수 있습니다.

    고맙습니다.

  • 말씀하신 코드스니펫 사용하도록 하겠습니다.

    제가 몇 시간을 머리를 쥐어짜도 안되던게 말씀하신 코드로 하니까 깔끔히 되는군요.. 이런게 경력자와의 차이인가봅니다.

    감사합니다 구현 구동 잘됩니다 :)

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