add_filter('kboard_user_display', 'my_kboard_user_display', 10, 5); function my_kboard_user_display($display, $user_id, $username, $plugin, $builder){ $board = $builder->board; if($user_id && $board->id == '1'){ // 실제 게시판 id로 적용해주세요. $nickname = get_user_meta($user_id, 'nickname', true); } return $nickname; }
알려주신 이 코드는 작동안함 - > 작성자 이름이 사라집니다.
마지막줄
return $nickname;
이 부분 때문에 작성자가 빈공간으로 나오네요.
이 부분을 $user_display; 이렇게 바꾸면 원상태로 돌아갑니다
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 == '1' && $user_id){ $user = get_userdata($user_id); $user_display = $user->nickname; } return $user_display; }
이것을 넣었더니 한개의 게시판에서만 작동합니다. (공지사항 게시판으로 관리자만 쓸 수 있는 게시판)
그러나
모든 회원들이 비밀글을 쓰는 기본 게시판이나 ocean-gallery 게시판은 닉네님이 아닌 디스플레이 이름으로 생성이 되고 있습니다.
$builder->board->id == '1'
이부분도 실제 게시판으로 변경하면 작동을 안합니다.
그냥 1로 두었더니 처음 만든 공지사항 게시판만 작동하고 있습니다.
안녕하세요~^^
코드를 남겨주실 때는 코드스니펫을 통해 작성해주세요.
일반 글로 남겨주시면 가독성이 떨어져 정확한 안내가 어렵습니다.
display_name은 비어있을 수 없는 정보이기 때문에
KBoard는 기본적으로 display_name을 기준으로 표시합니다.
작성자 명이 비어있다는 것은
해당 유저들의 nickname 정보가 없는 듯 합니다.
해당 유저들의 nickname 정보를 먼저 확인해보시겠어요?
$builder->board->id == '1'
남겨주신 코드의 이 부분은 게시판 ID를 확인하는 코드입니다.
1번 게시판에만 적용하겠다는 의미입니다.
여러 게시판에 적용하시려면
아래의 코드처럼 in_array 함수를 사용하실 수 있습니다.
in_array($builder->board->id, array('1', '2', '3', '4'))
in_array에 관한 가이드는 아래 링크에서 확인하실 수 있습니다.
https://www.php.net/manual/en/function.in-array.php
고맙습니다.