코스모스팜 스레드

작성자명을 display_name -> first_name으로 변경한 뒤 검색이 안되는 문제

 

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->id == '2' && $user_id){
        $user = get_userdata($user_id);
        $user_display = $user->first_name;
    }
    return $user_display;
}

 

테마의 function.php에 위와 같은 필터를 추가해서 작성자명을 first_name으로 출력되게 하였습니다.
게시글 리스트에서 first_name으로 잘 출력되긴 하는데

검색을 [작성자명]으로 검색할 시 first_name으로 검색이 안되고,
display_name 값으로 검색을 하면 검색이 되요..

매번 코스모스팜 커뮤니티에서 답을 찾았는데
아무리 검색하고 찾아봐도 이런 내용은 없어서 질문드립니다..ㅠㅠ

first_name을 작성자명으로 검색되게 하려면 어떻게 해야하나요?

무제한으로 웹사이트를 만드세요. (코스모스팜 무제한 라이센스)
무제한으로 웹사이트를 만드세요. (코스모스팜 무제한 라이센스)
  • 안녕하세요~^^

    KBoard 플러그인에서 작성자명은 워드프레스 공개적으로 표시할 이름을 활용하고 있습니다.

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

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

    워드프레스는 공개적으로 표시할 이름을 아이디, 닉네임, 이메일 등으로 선택해서 사용할 수 있도록 되어있습니다.

     

    올려주신 코드는 KBoard 플러그인에서 작성자명을 first_name으로 바꿔서 표시만 하기 때문에

    실제 검색은 display_name으로 해야 정상적으로 표시됩니다.

     

    게시글 작성 시 first_name을 display_name으로 설정하시려면

    워드프레스 관리자 -> 외모 -> 테마 편집기 페이지에서 functions.php 파일 하단에

    아래의 코드를 추가해보시겠어요?

    add_action('kboard_document_insert', 'my_kboard_document_insert', 10, 4);
    function my_kboard_document_insert($uid, $board_id, $content, $board){
    	if(is_user_logged_in() && $board->id == '1'){ // 실제 게시판 id로 적용해주세요.
    		$user_id = get_current_user_id();
    		$user_info = get_userdata($user_id);
    		
    		if($user_info->first_name){
    			$content->member_display = $user_info->first_name;
    			$content->updateContent();
    		}
    	}
    }

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

     

    코스모스팜 회원관리 플러그인을 사용 중이라면

    회원가입 시 display_name에 first_name을 설정하실 수 있습니다.

    아래 링크를 참고해보시겠어요?

    https://www.cosmosfarm.com/threads/document/20842

    고맙습니다.

  • 덕분에 잘 처리했습니다.

    이전에 입력된 건에 대해서는 검색이 안되네요..ㅠㅠ
    만족해야할 것 같습니다.

    시간내어 답변해주셔서 정말 감사합니다..! :)

이미지 사진은 imgur에 업로드한 뒤 링크 걸어주세요.
무제한으로 웹사이트를 만드세요. (코스모스팜 무제한 라이센스)