저는 현재 Kboad의 게시판 기능을 이용해서 입력필드 설정에 확장필드인 텍스트/숨김 을 이용해서 '성명'을 입력하는 란을 만들어놓은 상황입니다.
해당 스킨의 list.php 파일의 경우 아래 명령어를 넣어서 성명을 입력받고 있습니다.
<td class="kboard-list-5e7ae975b40f8"><?php echo $content->option->{'5e7ae975b40f8'}?></td>
'5e7ae975b40f8'가 메타키이구요.
여기서 텍스트로 받는 이름을 첫번째 글자, 성만 보이게 하고 싶습니다.
예를 들면 김무명 -> 김**으로 보이게 하고 싶습니다만 어떻게 하면 될까요?
my_kboard_hide_username 함수가 정상적으로 동작하는지 확인해보셔야 할 듯합니다.
$username 파라미터에 어떤 값이 들어오는지 echo로 확인해보시고
조건문의 어느 부분이 실행되는지도 확인해보셔야 할 듯합니다.
고맙습니다.
올려주신 코드 중 아래의 코드를 찾아서
<th class="kboard-latest-title"><?php echo __('Title', 'kboard')?></th>
찾은 코드 위에 아래의 코드를 추가해보세요.
<th class="kboard-latest-name">이름</th>
실제 저희 테스트 서버에 적용된 화면입니다.
비회원으로도 확인 가능한 페이지 주소 알려주시겠어요?
고맙습니다.
<div id="kboard-default2-latest">
<table>
<thead>
<tr>
<th class="kboard-latest-title"><?php echo __('Title', 'kboard')?></th>
<th class="kboard-latest-date"><?php echo __('Date', 'kboard')?></th>
</tr>
</thead>
<tbody>
<?php while($content = $list->hasNext()):?>
<tr>
<td class="kboard-latest-5e7ae975b40f8"><?php echo my_kboard_hide_username($content->option->{'5e7ae975b40f8'})?></td>
<td class="kboard-latest-title">
<a href="<?php echo $url->getDocumentURLWithUID($content->uid)?>">
<div class="kboard-default2-cut-strings">
<?php if($content->isNew()):?><span class="kboard-default2-new-notify">N</span><?php endif?>
<?php if($content->secret):?><img src="<?php echo $skin_path?>/images/icon-lock.png" alt="<?php echo __('Secret', 'kboard')?>"><?php endif?>
<?php echo $content->title?>
<span class="kboard-comments-count"><?php echo $content->getCommentsCount()?></span>
</div>
</a>
</td>
<td class="kboard-latest-date"><?php echo $content->getDate()?></td>
</tr>
<?php endwhile?>
</tbody>
</table>
</div>
안녕하세요.
코드상에는 문제 없는 듯합니다.
올려주신 코드를 저희 쪽 테스트 서버에 적용해서 확인해보니
정상적으로 입력 필드의 내용이 마스킹 처리되는 것을 확인했습니다.
디버그 모드를 활성화해서 오류 메시지가 있는지 확인해보시겠어요?
고맙습니다.
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;
}
테마편집기에서 functions.php 맨 아래에 위의 코드를 붙여넣었어요.
입력필드에 입력한 부분은 정상적으로 출력되고 있는 것 같습니다.
입력 필드에 저장된 값들은 정상적으로 표시되고 있는지요?
올려주신 내용만으로는 원인을 파악하기 어렵습니다.
my_kboard_hide_username 함수에 생략된 부분을 포함해서
에디터의 코드 스니펫 삽입 기능을 사용해서 올려주시겠어요?
고맙습니다.
<td class="kboard-latest-5e7ae975b40f8"><?php echo my_kboard_hide_username($content->option->{'5e7ae975b40f8'})?></td>
kboard 스킨 해당 게시판 latest.php 파일에 이렇게 넣었는데 변화가 없네요 ㅠㅠ
뭘 잘못했을까요? 테마편집기에서 functions.php 에서는
...(생략)
add_filter( 'wp_title', 'wpdocs_filter_wp_title', 10, 2 );
이 아래 부분(맨 밑)에다가
function my_kboard_hide_username($username){ ...(생략) }
이 부분 코드 추가해 넣었는데 뭐가 잘못되었을까요?
네, 맞습니다.
입력 필드의 메타키가 5e7ae975b40f8라면 올려주신 코드처럼 적용해주시면 됩니다.
고맙습니다.
추가한 입력필드에 맞게 코드를 수정하는 부분을 잘 모르겠어요.
다른 답변에 보면 functions.php 파일에 function my_kboard_hide_username($username){ ...(생략) } 라는 긴 코드를 뒤에 넣고
다시 KBoard 스킨의 latest.php 파일에 <?php echo my_kboard_hide_username($content->member_display)?>
이 코드를 넣으라고 되어 있는데, 제 경우에는 어떤 코드를 넣는게 맞는건가요?
<?php echo my_kboard_hide_username($content->option->{'5e7ae975b40f8'})?> <- 이렇게 넣으면 되는건가요?
안녕하세요~^^
KBoard 플러그인 작성자 마스킹 관련해서는
아래 페이지에 원하시는 답변이 있는지 확인해보시겠어요?
https://www.cosmosfarm.com/search?q=%EC%9E%91%EC%84%B1%EC%9E%90+%EB%A7%88%EC%8A%A4%ED%82%B9
추가하신 입력 필드에 맞게 코드를 수정해주셔야 합니다.
고맙습니다.