안녕하세요?
본문과 댓글에 IP 가 표시되는 방법을 커뮤니티에서 찾아서 코드를 functions.php 에 추가를 하고
/wp-content/plugins/kboard-comments/skin/사용중인스킨/list-template.php 에도 추가를 했는데요,
찾은 글 게시글에 ip 주소를 나오게했는데 일부분을 별표처리해서 보이게 가능할까요? - Cosmosfarm
본문엔 표시가 되는데 댓글에는 ip 표시가 되지 않습니다.
댓글에 표시는 또 다른 방법이 있나요?
부탁드립니다.
그리고, 게시판 id == '1' 이렇게 되어 있을 때 여러개의 게시판을 추가하려면 어떤식으로 해야 하나요?
고맙습니다.
올려주신 코드에서 게시판 id만 바꿔서 저희 쪽 테스트 서버에 적용했을 때
정상적으로 동작하는 것을 확인했습니다.
코드 수정 후 사이트에 반영이 되지 않는다면
캐시 문제인지 확인해보시겠어요?
크롬 브라우저에서 강력 새로고침 단축키는 Ctrl + Shift + R 입니다.
테마나 다른 플러그인에서 캐시 기능을 사용 중이라면
비활성화한 후에도 확인해보셔야 할 듯합니다.
서버 설정에 따라서 코드 수정이 바로 반영되지 않을 수도 있습니다.
php.ini 파일의 opcache.enable 부분을 0으로 수정해서도 확인해보셔야 할 듯합니다.
아래 관련 링크도 참고해보세요.
고맙습니다.
댓글 부분에 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 을 그대로 따라했는데도... ㅜ.ㅜ
제가 뭘 잘 못 한걸까요?
안녕하세요~^^
해당 코드가 저희 테스트 서버에서는 정상적으로 동작하는 것을 확인했습니다.
KBoard 플러그인의 버전이 어떻게 되시는지요?
오래된 버전이라면 게시판 플러그인과 댓글 플러그인 모두 최신 버전으로 업데이트해보시겠어요?
만약, 최신 버전에서도 동작하지 않는다면
코드를 잘 확인하셔서 적용해보시겠어요?
여러 개의 게시판에 적용하시려면
$board->id == '1' 부분을 in_array($board->id, array('1', '2', '3')) 이런 식으로 적용해보세요.
고맙습니다.