안녕하세요
add_filter('kboard_user_display', 'kboard_user_display_custom', 10, 5);
function kboard_user_display_custom($user_display, $user_id, $user_name, $plugin, $builder){
$current_user_id = get_current_user_id();
$board = isset($builder->board) ? $builder->board : null;
if($board && method_exists($board, 'isAdmin') && !$board->isAdmin()){
if($user_id && $user_id == $current_user_id){
return '익명 (Me)';
}
return '익명';
}
return $user_display;
}
예전에 질문을 했고, 답변을 받아 익명으로 게시판을 운영하는 코드를 아주 잘 사용했습니다.
그런데 이번에 홈페이지를 수정하게 되면서 실행하고 싶은 아이디어가 생겼습니다.
스스로 응용도 해보고 챗GPT한테도 물어봤는데 제가 원하는 방법대로 되지 않거나 자꾸 에러가 떠서 질문드려요.
혹시, 익명 커뮤니티를 운영하는 와중에 "해당 글 작성자"만 아이디가 노출되는 방법이 있을까요?
나머지 댓글들은 모두 익명처리 (또는 익명(Me))되지만,
해당 글 작성자는 게시글에도, 댓글에도 본인 아이디가 그대로 노출되는걸 구현하고 싶습니다. (본인이 작성한 글에서만 본인 아이디가 노출 되고, 다른 글에 댓글을 남기면 작성자가 아니기 때문에 평범하게 익명처리)
항상 감사합니다!
안녕하세요~^^
아래 코드를 한번 사용해서 확인해보시겠어요?
add_filter('kboard_user_display', 'kboard_user_display_custom', 10, 5);
function kboard_user_display_custom($user_display, $user_id, $user_name, $plugin, $builder){
$current_user_id = get_current_user_id();
$board = isset($builder->board) ? $builder->board : null;
// 특정 게시판 ID에서만 작동하게 하려면 아래 숫자를 해당 게시판 ID로 수정하세요.
// 여러 개라면 in_array($board->id, array(1, 2, 3)) 처럼 사용할 수 있습니다.
if($board && $board->id == '4'){
// 관리자가 아닐 때만 익명 로직 적용
if(method_exists($board, 'isAdmin') && !$board->isAdmin()){
// 1. 게시글 작성자 본인인 경우 (게시글 리스트나 본문 상단)
if($plugin == 'kboard'){
return $user_name;
}
// 2. 댓글인 경우
if($plugin == 'kboard-comments'){
if(isset($builder->content_uid) && $builder->content_uid){
// 해당 게시글의 정보를 가져와 작성자 ID 확인
static $cache_post_authors = array();
if(!isset($cache_post_authors[$builder->content_uid])){
$content = new KBContent();
$content->initWithUID($builder->content_uid);
$cache_post_authors[$builder->content_uid] = $content->member_uid;
}
$post_author_id = $cache_post_authors[$builder->content_uid];
// 댓글 작성자가 원글 작성자라면 실명 노출
if($user_id && $post_author_id && $user_id == $post_author_id){
return $user_name;
}
}
}
// 3. 그 외 (작성자가 아니거나 로그인하지 않은 경우 등) 익명 처리
if($user_id && $user_id == $current_user_id){
return '익명 (Me)';
}
return '익명';
}
}
return $user_display;
}
고맙습니다.