안녕하세요
function my_kboard_hide_username($username){ $strlen = mb_strlen($username, 'utf-8'); if($strlen > 3){ $showlen = 2; } else{ $showlen = 1; } $username = mb_substr($username, 0, $showlen, 'utf-8') . str_repeat('*', $strlen-$showlen); return $username; }
<?php echo my_kboard_hide_username($content->member_display)?>
위의 코드들을 활용해서 관리자를 제외한 작성자 이름이 별표로 표시되게 사용하고 있습니다. 그런데 이렇게 하니 작성자가 누구인지 확인이 안되네요;;;
관리자로 로그인 했을 때는 별표가 아닌 작성자 이름이 전부 보였으면 하는데 가능한지 문의드립니다.
감사합니다.
안녕하세요~^^
최신 버전에서는 kboard_user_display 필터를 이용해서
작성자명을 변경하실 수 있습니다.
업데이트를 할 수 있는 환경이 아니시라면 직접 코드 수정을 해주시겠어요?
관리자가 아닌 사용자에게 작성자명에 별표 표시를 하시려면
1. 테마의 functions.php 파일에
기존 적용하신 아래의 코드를
function my_kboard_hide_username($username){
$strlen = mb_strlen($username, 'utf-8');
if($strlen > 3){
$showlen = 2;
}
else{
$showlen = 1;
}
$username = mb_substr($username, 0, $showlen, 'utf-8') . str_repeat('*', $strlen-$showlen);
return $username;
}
아래의 코드로 교체해보시겠어요?
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->isAdmin()){
$strlen = mb_strlen($user_display, 'utf-8');
if($strlen > 3){
$showlen = 2;
}
else{
$showlen = 1;
}
$user_display = mb_substr($user_display, 0, $showlen, 'utf-8') . str_repeat('*', $strlen-$showlen);
}
return $user_display;
}
2. document.php, list.php 파일에
기존 적용하신 아래의 코드를
<?php echo my_kboard_hide_username($content->member_display)?>
아래의 코드로 적용해주시면 됩니다.
<?php echo apply_filters('kboard_user_display', $content->member_display, $content->member_uid, $content->member_display, 'kboard', $boardBuilder)?>
아바타를 표시하는 스킨이라면 위 코드대신
아래의 코드를 적용해보세요.
<?php echo apply_filters('kboard_user_display', get_avatar($content->member_uid, 24, '', $content->member_display).'<br>'.$content->member_display, $content->member_uid, $content->member_display, 'kboard', $boardBuilder)?>
댓글 플러그인에서는 아래의 코드를 적용해보세요.
<?php echo apply_filters('kboard_user_display', get_avatar($comment->user_uid, 24, '', $comment->user_display).' '.$comment->user_display, $comment->user_uid, $comment->user_display, 'kboard-comments', $commentBuilder)?>
고맙습니다.
답변 감사합니다.
적용이 제대로 안되어 최시버전으로 업데이트하고 위의 코드를 적용하니 정상적으로 별표처리되어 표시됩니다.
다만 관리자 이름은 글이나 댓글등 모든 부분에서 별표처리되지 않고 표시되면 좋겠는데 어떻게 가능할까요?
안녕하세요.
아래의 코드를 적용해보시겠어요?
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->isAdmin() && $user_display != '관리자'){
$strlen = mb_strlen($user_display, 'utf-8');
if($strlen > 3){
$showlen = 2;
}
else{
$showlen = 1;
}
$user_display = mb_substr($user_display, 0, $showlen, 'utf-8') . str_repeat('*', $strlen-$showlen);
}
return $user_display;
}
위 코드에서 관리자 부분을 실제 관리자의 공개적으로 표시할 이름으로 설정해주시면 됩니다.
워드프레스 관리자 -> 사용자 -> 나의 프로필 페이지에서
공개적으로 표시할 이름 설정이 display_name입니다.
KBoard 게시판에서는 공개적으로 표시할 이름을 활용하고 있습니다.
고맙습니다.
감사합니다.
위의 코드를 적용하니 게시글에서는 관리자이름이 모두 표시되는데 댓글에서는 관리자이름이 별표로 표시되네요.
댓글에서도 관리자 이름이 모두 표시되게 할 수 있을까요?
댓글 플러그인도 최신 버전이라면
기존의 코드 대신 아래의 코드로 적용해보세요.
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->isAdmin() && $user_name != '관리자'){
$strlen = mb_strlen($user_name, 'utf-8');
if($strlen > 3){
$showlen = 2;
}
else{
$showlen = 1;
}
$user_name = mb_substr($user_name, 0, $showlen, 'utf-8') . str_repeat('*', $strlen-$showlen);
}
if($plugin == 'kboard-comments' || in_array($builder->board->id, array('1', '2'))){
$user_display = get_avatar($user_id, 24, '', $user_name).' '.$user_name;
}
else{
$user_display = $user_name;
}
return $user_display;
}
만약 아바타를 표시하는 스킨을 사용 중이시라면
위 코드에서 in_array($builder->board->id, array('1', '2')) 부분에서 숫자는
아바타를 표시하는 스킨의 게시판 id로 적용해주시면 됩니다.
고맙습니다.
감사합니다!
안녕하세요.
올려주신 에러 메시지는 str_repeat 함수 사용 시 $strlen-$showlen 값이
0보다 크거나 0이어야 하는데 다른 값이 적용된 듯합니다.
모든 작성자 명에 적용되지 않는지요?
해당 문제는 저희가 직접 확인을 해봐야 도움을 드릴 수 있을 듯합니다.
저희 고객지원 쪽 이메일로 워드프레스 관리자 계정과 FTP 접속 정보를 보내주시면 점검해드리겠습니다.
고맙습니다.
저희 고객지원 쪽 이메일로 보내주신 정보로 확인해보니
테마 쪽에 추가하신 코드는 정상적으로 동작하는 것을 확인했습니다.
다만, FTP로 접속해서 /wp-content/plugins/kboard/skin/default/list.php 파일 제일 하단을 보시면
아래의 코드가 있습니다.
<?php echo apply_filters('kboard_user_display', $content->member_display, $content->member_uid, $content->member_display, 'kboard', $boardBuilder)?>
위의 코드는 어떤 이유로 추가하신 건지요?
지우신 후에 확인해보시겠어요?
고맙습니다.