Kboard 리스트의 성명에서 성만 표시하고 싶습니다.

저는 현재 Kboad의 게시판 기능을 이용해서 입력필드 설정에 확장필드인 텍스트/숨김 을 이용해서 '성명'을 입력하는 란을 만들어놓은 상황입니다.

해당 스킨의 list.php 파일의 경우 아래 명령어를 넣어서 성명을 입력받고 있습니다.

<td class="kboard-list-5e7ae975b40f8"><?php echo $content->option->{'5e7ae975b40f8'}?></td>

'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

    추가하신 입력 필드에 맞게 코드를 수정해주셔야 합니다.

    고맙습니다.

  • http://k-security.co.kr/?page_id=437

    해봤는데 안 되네요 ㅠㅠ
    여기 링크에서 확인해주시면 감사하겠습니다.
  • 올려주신 코드 중 아래의 코드를 찾아서

    <th class="kboard-latest-title"><?php echo __('Title', 'kboard')?></th>

    찾은 코드 위에 아래의 코드를 추가해보세요.

    <th class="kboard-latest-name">이름</th>

     

    실제 저희 테스트 서버에 적용된 화면입니다.

    https://imgur.com/a/q5boErI

    비회원으로도 확인 가능한 페이지 주소 알려주시겠어요?

    고맙습니다.

  • <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>

     

  • 적힌대로 해서 확인해보았는데, 오류 메시지는 안 보이는 것 같아요...
    그리고 하라고 하는대로 한 것 같은데 어째선지 debug.log 파일이 안 보이네요.

    일단 이 부분 코딩은 맞는지 확인해주실 수 있을까요? 여기말고는 달리 틀릴 부분이 없을 것 같아요.
  • 안녕하세요.

    코드상에는 문제 없는 듯합니다.

    올려주신 코드를 저희 쪽 테스트 서버에 적용해서 확인해보니

    정상적으로 입력 필드의 내용이 마스킹 처리되는 것을 확인했습니다.

     

    디버그 모드를 활성화해서 오류 메시지가 있는지 확인해보시겠어요?

    워드프레스 에러 확인하기 - 디버그 모드 활성화 방법

    고맙습니다.

  • 
    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'})?> <- 이렇게 넣으면 되는건가요?

     

  • my_kboard_hide_username 함수가 정상적으로 동작하는지 확인해보셔야 할 듯합니다.

    $username 파라미터에 어떤 값이 들어오는지 echo로 확인해보시고

    조건문의 어느 부분이 실행되는지도 확인해보셔야 할 듯합니다.

    고맙습니다.

워드프레스 에러 기술지원 서비스 전문가에게 맡기세요