만들어주신 코드가 약간 적용이 안되어 다시 조심스럽게 요청합니다.


아래 만들어주신 코드를 스니펫으로 붙였는데
예전에 유료 개발 의뢰로 만들어주신 
사용자 플로필 사진과 랭크 이미지 포인트가 다 없어지고
디스플레이 네임만 남습니다.
저는 기존의 디자인을 유지하면서 기존에 사용했던 디스플레이 네임만 바꾸고 싶습니다.

https://www.dokjongban.com/readinghomework/

 

----------------------------------------------------------
아래 만들어주신 코드를 조금 수정해주시면 너무 감사하겠습니다.

Kboard id 는 3개입니다. 여러개일 경우 처리도 부탁드립니다. 39,40,41,42 일 경우
(그냥 컴마 넣고 붙였더니 오류를 불러 오더라구요)

===================================================

작성자 이름을 바꾸면 지금부터 작성하는 글은 바꾼 작성자 이름(디스플레이 네임)이 정상적으로 나옵니다.
그런데 오래된 글의 작성자 이름은 닉네임 바꾸기전의 예전 디스플레이 네임으로 나옵니다.
닉네임을 바꾸면 기존 오래된 글의 작성한 저자 이름은 바뀌지 않고 이전 이름을 그대로 나옵니다.
궁금한 것은 어떻게 하면 닉네임을 바꾸면 오래된 글의 닉네임도 전부 바뀌게 될까요?
닉네임을 바꾸면 게시판 전체에서 모든 글이 바뀐 닉네임을 보여지게 하고 싶습니다.
----------------------------------------------------------

add_filter('kboard_user_display', 'kboard_user_display_20210322', 10, 5);
function kboard_user_display_20210322($user_display, $user_id, $user_name, $plugin, $builder){
    $board = $builder->board;
    if($user_id && $board->id == '1'){ // 실제 게시판 id로 적용해주세요.
        $user = get_userdata($user_id);
        $user_display = $user->display_name;
    }
    
    return $user_display;
}
 

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

    프로그램 코드를 올려야 할 경우 에디터의 코드 스니펫 삽입 기능을 사용해주세요.

    그렇지 않으면 이상한 코드로 바뀌거나

    질의응답 시 의사소통에 문제가 있을 수도 있습니다.

     

    올려주신 코드를 여러 게시판에 적용하시려면

    올려주신 코드 중 $board->id == '1' 부분을

    in_array($board->id, array('1', '2', '3')) 이런 식으로 적용해보시겠어요?

    각 숫자는 실제 게시판 id로 적용해주세요.

     

    in_array($board->id, array('1', '2', '3', '4', '5')) 이런 식으로 더 늘려서 활용하실 수도 있습니다.

    고맙습니다.

  • 새로 만들어주신 코드 역시 사용 할 수 없습니다. 이유는 아래와 같습니다.

    제공해주신 소스를 부착할 경우

    1. 기존에 유료로 개발해주신 프로필 사진, 랭크 이미지, 포인트 수치가 다 없어집니다.

    2. 글쓴이 아이디를 클릭하였을때의 버디프레스 링크 역시 사라져서 사용 할수 없습니다. 

     

    기존 디자인을 유지하면서 사용 할수 있는 코드로 조금만 개선 해주면 안될까요?

    https://www.dokjongban.com/readinghomework/

     

  • 기존에 어떤 코드가 적용되어 있는지 확인을 해봐야 할 듯합니다.

    저희 고객지원 쪽 이메일로 워드프레스 관리자 계정과 FTP 접속 정보를 보내주시면

    기존 코드와 충돌이 되지 않는 방법을 찾아보겠습니다.

    고맙습니다.

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

    기존 Code Snippets 플러그인의 "KBoard 글쓴이 클릭시 버디프레스 프로필로 이동"에 아래와 같은 코드가 있었습니다.

    add_filter('kboard_user_display', 'my_kboard_user_display', 10, 5);
    function my_kboard_user_display($display, $user_id, $username, $plugin, $builder){
    	if(is_user_logged_in()){
    		if($user_id){ //&& $user_id != get_current_user_id()
    			$avatar = bp_core_fetch_avatar ( array( 'item_id' => $user_id, 'type' => 'full' ) );
    			$display = sprintf('<a href="%s" title="프로필"><span class="avatar-border">%s</span> %s</a>', bp_core_get_user_domain($user_id), $avatar, $display);
    		}
    		
    	}else{
    			$avatar = bp_core_fetch_avatar ( array( 'item_id' => $user_id, 'type' => 'full' ) );
    			// This is for not lnik , but display is not corret show
    			//$display = sprintf('<!--<a href="%s" title="프로필">--><span class="avatar-border">%s</span><br>%s<!--</a>-->', bp_core_get_user_domain($user_id), $avatar, $display);
    			// This is for link, but link is not good
    			$display = sprintf('<a href="%s" title="프로필"><span class="avatar-border">%s</span> %s</a>', bp_core_get_user_domain($user_id), $avatar, $display);
    
    	}
    	return $display;
    }

    현재는 저희 쪽에서 개선해서 아래의 코드로 교체해두었습니다.

    add_filter('kboard_user_display', 'my_kboard_user_display', 10, 5);
    function my_kboard_user_display($display, $user_id, $username, $plugin, $builder){
    	if($user_id){
    		$user = get_userdata($user_id);
    		$display = $user->display_name;
    	}
    	
    	if(is_user_logged_in()){
    		if($user_id){ //&& $user_id != get_current_user_id()
    			$avatar = bp_core_fetch_avatar ( array( 'item_id' => $user_id, 'type' => 'full' ) );
    			$display = sprintf('<a href="%s" title="프로필"><span class="avatar-border">%s</span> %s</a>', bp_core_get_user_domain($user_id), $avatar, $display);
    		}
    		
    	}else{
    			$avatar = bp_core_fetch_avatar ( array( 'item_id' => $user_id, 'type' => 'full' ) );
    			// This is for not lnik , but display is not corret show
    			//$display = sprintf('<!--<a href="%s" title="프로필">--><span class="avatar-border">%s</span><br>%s<!--</a>-->', bp_core_get_user_domain($user_id), $avatar, $display);
    			// This is for link, but link is not good
    			$display = sprintf('<a href="%s" title="프로필"><span class="avatar-border">%s</span> %s</a>', bp_core_get_user_domain($user_id), $avatar, $display);
    
    	}
    	return $display;
    }

    정상적으로 적용됐는지 확인해보시겠어요?

    고맙습니다.

  • 안녕하세요.

    코드 스니펫 지금 붙이고 예전 닉네임 확인하였습니다.

    아주 잘 작동합니다.

     

    관리자 아이디 알려드리는데 몇번의 실수로 번거롭게

    해드려서 상당히 미안했습니다.

     

    정말 정말 감사합니다. (__)

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