안녕하세요
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)?>
위의 코드들을 활용해서 관리자를 제외한 작성자 이름이 별표로 표시되게 사용하고 있습니다. 그런데 이렇게 하니 작성자가 누구인지 확인이 안되네요;;;
관리자로 로그인 했을 때는 별표가 아닌 작성자 이름이 전부 보였으면 하는데 가능한지 문의드립니다.
감사합니다.
저희 고객지원 쪽 이메일로 보내주신 정보로 확인해보니
테마 쪽에 추가하신 코드는 정상적으로 동작하는 것을 확인했습니다.
다만, 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)?>
위의 코드는 어떤 이유로 추가하신 건지요?
지우신 후에 확인해보시겠어요?
고맙습니다.
안녕하세요.
올려주신 에러 메시지는 str_repeat 함수 사용 시 $strlen-$showlen 값이
0보다 크거나 0이어야 하는데 다른 값이 적용된 듯합니다.
모든 작성자 명에 적용되지 않는지요?
해당 문제는 저희가 직접 확인을 해봐야 도움을 드릴 수 있을 듯합니다.
저희 고객지원 쪽 이메일로 워드프레스 관리자 계정과 FTP 접속 정보를 보내주시면 점검해드리겠습니다.
고맙습니다.
감사합니다!
댓글 플러그인도 최신 버전이라면
기존의 코드 대신 아래의 코드로 적용해보세요.
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로 적용해주시면 됩니다.
고맙습니다.
감사합니다.
위의 코드를 적용하니 게시글에서는 관리자이름이 모두 표시되는데 댓글에서는 관리자이름이 별표로 표시되네요.
댓글에서도 관리자 이름이 모두 표시되게 할 수 있을까요?
안녕하세요.
아래의 코드를 적용해보시겠어요?
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 게시판에서는 공개적으로 표시할 이름을 활용하고 있습니다.
고맙습니다.
답변 감사합니다.
적용이 제대로 안되어 최시버전으로 업데이트하고 위의 코드를 적용하니 정상적으로 별표처리되어 표시됩니다.
다만 관리자 이름은 글이나 댓글등 모든 부분에서 별표처리되지 않고 표시되면 좋겠는데 어떻게 가능할까요?
안녕하세요~^^
최신 버전에서는 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)?>
고맙습니다.