댓글에 IP 표시 방법 문의 드립니다.

안녕하세요?

본문과 댓글에 IP 가 표시되는 방법을 커뮤니티에서 찾아서 코드를 functions.php 에 추가를 하고 

/wp-content/plugins/kboard-comments/skin/사용중인스킨/list-template.php  에도 추가를 했는데요,

찾은 글 게시글에 ip 주소를 나오게했는데 일부분을 별표처리해서 보이게 가능할까요? - Cosmosfarm

본문엔 표시가 되는데 댓글에는 ip 표시가 되지 않습니다.

댓글에 표시는 또 다른 방법이 있나요?

부탁드립니다.

그리고, 게시판 id == '1'  이렇게 되어 있을 때 여러개의 게시판을 추가하려면 어떤식으로 해야 하나요? 

고맙습니다.

 

 

 

 

좋은 정보와 인맥을 동시에, 워드프레스 사용자 단톡방 참여하기
좋은 정보와 인맥을 동시에, 워드프레스 사용자 단톡방 참여하기
  • 안녕하세요~^^

    해당 코드가 저희 테스트 서버에서는 정상적으로 동작하는 것을 확인했습니다.

    KBoard 플러그인의 버전이 어떻게 되시는지요?

    오래된 버전이라면 게시판 플러그인과 댓글 플러그인 모두 최신 버전으로 업데이트해보시겠어요?

    KBoard(케이보드) 플러그인 업데이트 방법

     

    만약, 최신 버전에서도 동작하지 않는다면

    코드를 잘 확인하셔서 적용해보시겠어요?

     

    여러 개의 게시판에 적용하시려면

    $board->id == '1' 부분을 in_array($board->id, array('1', '2', '3')) 이런 식으로 적용해보세요.

    고맙습니다.

  • 댓글 부분에 IP는 여전히 나오지 않네요. 이유가 뭔지 도저히 모르겠네요.

    IP표시를 하려고 하는 게시판의 ID는 23 번입니다. 

    KBoard 게시판, 댓글의 버전은 현재 최신 버전입니다.

    https://imgur.com/lAAfOxu

     

    아래는 functions.php 파일에 추가한 코드입니다.

    //  본문ip
    add_filter('kboard_document_add_option_value_field_html', 'kboard_document_add_option_value_field_html_20201102', 10, 4);
    function kboard_document_add_option_value_field_html_20201102($html, $field, $content, $board){
    	$meta_key = isset($field['meta_key']) ? $field['meta_key'] : '';
    	$field_name = isset($field['field_name']) ? $field['field_name'] : $field['field_label'];
    
    	if($board->id == '23' && $meta_key == 'ip' && $content->option->{$meta_key}){ // 실제 게시판 id로 적용해주세요.
    		$value = array();
    		$value = explode('.', $content->option->ip);
    		if(isset($value[1]) && $value[1]){
    			$strlen = mb_strlen($value[1], 'utf-8');
    			$value[1] = str_repeat('*', $strlen);
    			$value = implode('.', $value);
    			
    			$html = '<div class="kboard-document-add-option-value meta-key-'.$meta_key.'"><span class="option-name">'.$field_name.'</span> : '.$value.'</div><hr>';
    		}
    	}
    
    	return $html;
    }
    
    
    //  댓글ip
    
    add_action('kboard_comments_field', 'my_kboard_comments_field', 10, 4);
    function my_kboard_comments_field($field_html, $board, $content_uid, $commentBuilder){
    	if($board->id == '23'){ // 실제 게시판 id로 적용해주세요.
    		?>
    		<input type="hidden" name="comment_option_ip" value="<?php echo kboard_user_ip()?>">
    		<?php
    	}
    }
    

     

     

    아래 코드는 wp-content/plugins/kboard-comments/skin/default/list-template.php 에 ~~Display()?> 아래에 추가하라고 해서 추가를 했습니다.

    				<?php echo $comment->getUserDisplay()?>
    
    <?php
    if($comment->option->ip){
    	$value = array();
    	$value = explode('.', $comment->option->ip);
    	if(isset($value[1]) && $value[1]){
    		$strlen = mb_strlen($value[1], 'utf-8');
    		$value[1] = str_repeat('*', $strlen);
    		$value = implode('.', $value);
    		
    		echo "({$value})";
    	}
    }
    ?>
    
    

     

    이렇게 했는데도 본문에는 ip 표시가 되는데 댓글에는 표시가 되지 않네요.

    https://imgur.com/EBWv2xG

     

    제가 참고한 글 게시글에 ip 주소를 나오게했는데 일부분을 별표처리해서 보이게 가능할까요? - Cosmosfarm 을 그대로 따라했는데도... ㅜ.ㅜ

    제가 뭘 잘 못 한걸까요?

     

  • 올려주신 코드에서 게시판 id만 바꿔서 저희 쪽 테스트 서버에 적용했을 때

    정상적으로 동작하는 것을 확인했습니다.

     

    코드 수정 후 사이트에 반영이 되지 않는다면

    캐시 문제인지 확인해보시겠어요?

    크롬 브라우저에서 강력 새로고침 단축키는 Ctrl + Shift + R 입니다.

    테마나 다른 플러그인에서 캐시 기능을 사용 중이라면

    비활성화한 후에도 확인해보셔야 할 듯합니다.

     

    서버 설정에 따라서 코드 수정이 바로 반영되지 않을 수도 있습니다.

    php.ini 파일의 opcache.enable 부분을 0으로 수정해서도 확인해보셔야 할 듯합니다.

    아래 관련 링크도 참고해보세요.

    https://hack.pe.kr/373

    고맙습니다.

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