// 게시판 이름 별표 처리 & 본인인증한 이름으로 노출
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(in_array($user_name, array('김포골드라인'))){
return $user_name;
}
if(!$builder->board->isAdmin($user_id)){
if($user_id){
$certification_name = get_user_meta($user_id, 'certification_name', true);
if($certification_name){
$user_display = $certification_name;
}
}
$strlen = mb_strlen($user_display, 'utf-8');
if($strlen > 10){
$showlen = 1;
}
else{
$showlen = 2;
}
$user_display = mb_substr($user_display, 0, $showlen, 'utf-8') . str_repeat('*', $strlen-$showlen);
}
return $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(in_array($user_name, array('김포골드라인'))){
return $user_name;
}
if(!$builder->board->isAdmin($user_id)){
if($user_id){
$certification_name = get_user_meta($user_id, 'certification_name', true);
if($certification_name){
$user_display = $certification_name;
}
}
$strlen = mb_strlen($user_display, 'utf-8');
if($strlen > 1){
if($strlen > 10){
$showlen = 1;
}
else{
$showlen = 2;
}
$user_display = mb_substr($user_display, 0, $showlen, 'utf-8') . str_repeat('*', $strlen-$showlen);
}
}
return $user_display;
}
커뮤니티에서는 저희가 모든 코드를 일일이 만들어 드리는 건 현실적으로 불가능합니다.
또한 100% 해결을 보장해드리긴 어렵습니다.
상황에 따라 코드가 달라질 수 있습니다.
직접 코드를 수정하기 어려우시거나 수정해야 할 부분이 많다면
프로젝트 의뢰에 상세 내용을 올려보세요.
고맙습니다.
한가지만 더 요청드리고 싶습니다..
현재 상태는 관리자든 아니든 모두 회원 이름이 *로 마스킹되어 보여지는데요,
코드를 여러번 수정한 상태라 다른 문의글을 확인해도 선뜻 어느부분을 수정해야할지 감이 안오네요ㅠㅠ
아래 소스에서 어떤 부분을 수정하면, 관리자한테도 고객이름이 보일까요?ㅠㅠ 부탁드립니다...!!!!
// 게시판 이름 별표 처리 & 본인인증한 이름으로 노출
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(in_array($user_name, array('김포골드라인'))){
return $user_name;
}
if(!$builder->board->isAdmin($user_id)){
if($user_id){
$certification_name = get_user_meta($user_id, 'certification_name', true);
if($certification_name){
$user_display = $certification_name;
}
}
$strlen = mb_strlen($user_display, 'utf-8');
if($strlen > 1){
if($strlen > 10){
$showlen = 1;
}
else{
$showlen = 2;
}
$user_display = mb_substr($user_display, 0, $showlen, 'utf-8') . str_repeat('*', $strlen-$showlen);
}
}
return $user_display;
}
!$builder->board->isAdmin($user_id) 부분을
!$builder->board->isAdmin($user_id) && !$builder->board->isAdmin() 코드로 교체해보시겠어요?
위와 같이 적용하면 작성자와 관리자에게는 마스킹 처리되지 않습니다.
고맙습니다.
알려주신대로 적용했더니, 관리자에서는 이름이 아닌, 사용자 아이디가 목록에 노출됩니다.
certification_name 으로 실명 인증한 이름을 게시판 목록 이름으로 불러오게 설정해 두었었는데요,
관리자에서 아이디가 아닌 이름이 노출되었으면 합니다.. ㅠㅠ
$builder->board->isAdmin() 코드를 활용하시면
현재 접속한 사용자가 관리자인지 체크하실 수 있습니다.
아래의 코드로 교체해서 확인해보세요.
// 게시판 이름 별표 처리 & 본인인증한 이름으로 노출
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(in_array($user_name, array('김포골드라인'))){
return $user_name;
}
if(!$builder->board->isAdmin($user_id)){
if($user_id){
$certification_name = get_user_meta($user_id, 'certification_name', true);
if($certification_name){
$user_display = $certification_name;
}
}
if(!$builder->board->isAdmin()){
$strlen = mb_strlen($user_display, 'utf-8');
if($strlen > 1){
if($strlen > 10){
$showlen = 1;
}
else{
$showlen = 2;
}
$user_display = mb_substr($user_display, 0, $showlen, 'utf-8') . str_repeat('*', $strlen-$showlen);
}
}
}
return $user_display;
}
이전 댓글에서도 안내해드린 것처럼
저희가 커뮤니티에서 모든 코드를 만들어 드리는 건 현실적으로 불가능합니다.
다음엔 유료 기술지원을 요청해주시길 부탁드립니다.
고맙습니다.
정말 감사합니다.!!!!!! ㅠㅠ