작성자 별표 표시 - 관리자 로그인시 모두 보이게 하는 방법

안녕하세요

function my_kboard_hide_username($username){ $strlen = mb_strlen($username, 'utf-8'); if($strlen > 3){ $showlen = 2; } else{ $showlen = 1; } $username = mb_substr($username, 0, $showlen, 'utf-8') . str_repeat('*', $strlen-$showlen); return $username; }

<?php echo my_kboard_hide_username($content->member_display)?>

 

위의 코드들을 활용해서 관리자를 제외한 작성자 이름이 별표로 표시되게 사용하고 있습니다. 그런데 이렇게 하니 작성자가 누구인지 확인이 안되네요;;;

 

관리자로 로그인 했을 때는 별표가 아닌 작성자 이름이 전부 보였으면 하는데 가능한지 문의드립니다.

감사합니다.

워드프레스 에러 기술지원 서비스 전문가에게 맡기세요
워드프레스 에러 기술지원 서비스 전문가에게 맡기세요
  • 안녕하세요~^^

    최신 버전에서는 kboard_user_display 필터를 이용해서

    작성자명을 변경하실 수 있습니다.

    업데이트를 할 수 있는 환경이 아니시라면 직접 코드 수정을 해주시겠어요?

    관리자가 아닌 사용자에게 작성자명에 별표 표시를 하시려면

    1. 테마의 functions.php 파일에

    기존 적용하신 아래의 코드를

    function my_kboard_hide_username($username){
    	$strlen = mb_strlen($username, 'utf-8');
    	if($strlen > 3){ 
    		$showlen = 2;
    	}
    	else{
    		$showlen = 1; 
    	} 
    	
    	$username = mb_substr($username, 0, $showlen, 'utf-8') . str_repeat('*', $strlen-$showlen);
    	return $username;
    }

    아래의 코드로 교체해보시겠어요?

    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->isAdmin()){
    		$strlen = mb_strlen($user_display, 'utf-8');
    		if($strlen > 3){
    			$showlen = 2;
    		}
    		else{
    			$showlen = 1;
    		}
    		
    		$user_display = mb_substr($user_display, 0, $showlen, 'utf-8') . str_repeat('*', $strlen-$showlen);
    	}
    	
    	return $user_display;
    }

    2. document.php, list.php 파일에

    기존 적용하신 아래의 코드를

    <?php echo my_kboard_hide_username($content->member_display)?>

    아래의 코드로 적용해주시면 됩니다.

    <?php echo apply_filters('kboard_user_display', $content->member_display, $content->member_uid, $content->member_display, 'kboard', $boardBuilder)?>

    아바타를 표시하는 스킨이라면 위 코드대신

    아래의 코드를 적용해보세요.

    <?php echo apply_filters('kboard_user_display', get_avatar($content->member_uid, 24, '', $content->member_display).'<br>'.$content->member_display, $content->member_uid, $content->member_display, 'kboard', $boardBuilder)?>

    댓글 플러그인에서는 아래의 코드를 적용해보세요.

    <?php echo apply_filters('kboard_user_display', get_avatar($comment->user_uid, 24, '', $comment->user_display).' '.$comment->user_display, $comment->user_uid, $comment->user_display, 'kboard-comments', $commentBuilder)?>

    고맙습니다.

  • 답변 감사합니다.

    적용이 제대로 안되어 최시버전으로 업데이트하고 위의 코드를 적용하니 정상적으로 별표처리되어 표시됩니다.

    다만 관리자 이름은 글이나 댓글등 모든 부분에서 별표처리되지 않고 표시되면 좋겠는데 어떻게 가능할까요?

  • 안녕하세요.

    아래의 코드를 적용해보시겠어요?

    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->isAdmin() && $user_display != '관리자'){
    		$strlen = mb_strlen($user_display, 'utf-8');
    		if($strlen > 3){
    			$showlen = 2;
    		}
    		else{
    			$showlen = 1;
    		}
    		
    		$user_display = mb_substr($user_display, 0, $showlen, 'utf-8') . str_repeat('*', $strlen-$showlen);
    	}
    	
    	return $user_display;
    }

    위 코드에서 관리자 부분을 실제 관리자의 공개적으로 표시할 이름으로 설정해주시면 됩니다.

    워드프레스 관리자 -> 사용자 -> 나의 프로필 페이지에서

    공개적으로 표시할 이름 설정이 display_name입니다.

    KBoard 게시판에서는 공개적으로 표시할 이름을 활용하고 있습니다.

    고맙습니다.

  • 감사합니다.

    위의 코드를 적용하니 게시글에서는 관리자이름이 모두 표시되는데 댓글에서는 관리자이름이 별표로 표시되네요.

     

    댓글에서도 관리자 이름이 모두 표시되게 할 수 있을까요?

  • 댓글 플러그인도 최신 버전이라면

    기존의 코드 대신 아래의 코드로 적용해보세요.

    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->isAdmin() && $user_name != '관리자'){
    		$strlen = mb_strlen($user_name, 'utf-8');
    		if($strlen > 3){
    			$showlen = 2;
    		}
    		else{
    			$showlen = 1;
    		}
    		
    		$user_name = mb_substr($user_name, 0, $showlen, 'utf-8') . str_repeat('*', $strlen-$showlen);
    	}
    	
    	if($plugin == 'kboard-comments' || in_array($builder->board->id, array('1', '2'))){
    		$user_display = get_avatar($user_id, 24, '', $user_name).' '.$user_name;
    	}
    	else{
    		$user_display = $user_name;
    	}
    	
    	return $user_display;
    }

    만약 아바타를 표시하는 스킨을 사용 중이시라면

    위 코드에서 in_array($builder->board->id, array('1', '2')) 부분에서 숫자는

    아바타를 표시하는 스킨의 게시판 id로 적용해주시면 됩니다.

    고맙습니다.

  • 감사합니다!

  • 안녕하세요. kboard 감사히 잘쓰고 있습니다.
    헌대 조금의 오류가 있어 문의드립니다. 어떻게 해결방법이 없을까요?

    kboard 최신버전이며
    아래 코드 적용하니 str_repeat(): Second argument has to be greater than or equal to 0 [closed] 메세지가 출력됩니다.

    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->isAdmin()){
    $strlen = mb_strlen($user_display, 'utf-8');
    if($strlen > 3){
    $showlen = 2;
    }
    else{
    $showlen = 1;
    }

    $user_display = mb_substr($user_display, 0, $showlen, 'utf-8') . str_repeat('*', $strlen-$showlen);
    }

    return $user_display;
    }
  • 안녕하세요.

    올려주신 에러 메시지는 str_repeat 함수 사용 시 $strlen-$showlen 값이

    0보다 크거나 0이어야 하는데 다른 값이 적용된 듯합니다.

    모든 작성자 명에 적용되지 않는지요?

     

    해당 문제는 저희가 직접 확인을 해봐야 도움을 드릴 수 있을 듯합니다.

    저희 고객지원 쪽 이메일로 워드프레스 관리자 계정과 FTP 접속 정보를 보내주시면 점검해드리겠습니다.

    고맙습니다.

  • 저희 고객지원 쪽 이메일로 보내주신 정보로 확인해보니

    테마 쪽에 추가하신 코드는 정상적으로 동작하는 것을 확인했습니다.

     

    다만, FTP로 접속해서 /wp-content/plugins/kboard/skin/default/list.php 파일 제일 하단을 보시면

    아래의 코드가 있습니다.

    <?php echo apply_filters('kboard_user_display', $content->member_display, $content->member_uid, $content->member_display, 'kboard', $boardBuilder)?>

    위의 코드는 어떤 이유로 추가하신 건지요?

    지우신 후에 확인해보시겠어요?

    고맙습니다.

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