안녕하세요.
에스크원 상담 스킨을 적용한 화면입니다.
https://imgur.com/VrCbpCK
이 화면 처럼 체크박스를 이용해 개인정보처리방침이라는 필드를 만들었습니다.
실제화면에서는
https://imgur.com/fR7Z39s
이렇게 출력이되구요.
그런데 설명부분에 수집항목등에 대해 적었는데 이 부분에 태그가 적용되지 않는 것 같은데 줄바꿈을 적용시킬 수 있는 방법이 있을까요?
감사합니다.
안녕하세요~^^
KBoard 플러그인 입력 필드를 지원하는 스킨을 사용 중이시라면
게시글 작성 페이지에 표시되는 필드 설명은 보안을 위해 이스케이프 처리하고 있습니다.
워드프레스 내장 함수인 esc_html 함수를 활용하고 있는데요.
체크박스의 설명 부분에 HTML 태그를 적용되게 하시려면
아래의 코드를 활용해보세요.
add_filter('kboard_get_template_field_html', 'kboard_get_template_field_html_20201218', 10, 4);
function kboard_get_template_field_html_20201218($field_html, $field, $content, $board){
$fields = $board->fields();
$meta_key = isset($field['meta_key']) ? $field['meta_key'] : '';
$field_name = (isset($field['field_name']) && $field['field_name']) ? $field['field_name'] : $field['field_label'];
$required = (isset($field['required']) && $field['required']) ? $field['required'] : '';
if($meta_key == '메타키' && $board->id == '1'){ // 실제 게시판 id로 적용해보세요.
$default_value = array();
if(isset($field['row']) && $field['row']){
foreach($field['row'] as $item){
if(isset($item['label']) && $item['label']){
$row = true;
if(isset($item['default_value']) && $item['default_value']){
$default_value[] = $item['label'];
}
}
}
}
ob_start();
?>
<?php if(isset($field['row']) && $field['row']):?>
<div class="kboard-attr-row <?php echo esc_attr($field['class'])?> meta-key-<?php echo esc_attr($meta_key)?> <?php echo esc_attr($required)?>">
<label class="attr-name" for="<?php echo esc_attr($meta_key)?>"><span class="field-name"><?php echo esc_html($field_name)?></span><?php if($required):?> <span class="attr-required-text">*</span><?php endif?></label>
<div class="attr-value">
<input type="hidden" name="<?php echo esc_attr($fields->getOptionFieldName($meta_key))?>" value="">
<?php foreach($field['row'] as $option_key=>$option_value):?>
<?php if(isset($option_value['label']) && $option_value['label']):?>
<?php if($content->option->{$meta_key}):?>
<label class="attr-value-label"><input type="checkbox" name="<?php echo esc_attr($fields->getOptionFieldName($meta_key))?>[]"class="<?php echo esc_attr($required)?>"<?php if($fields->isSavedOption($content->option->{$meta_key}, $option_value['label'])):?> checked<?php endif?> value="<?php echo esc_attr($option_value['label'])?>"> <?php echo esc_html($option_value['label'])?></label>
<?php else:?>
<label class="attr-value-label"><input type="checkbox" name="<?php echo esc_attr($fields->getOptionFieldName($meta_key))?>[]"class="<?php echo esc_attr($required)?>"<?php if($default_value && in_array($option_value['label'], $default_value)):?> checked<?php endif?> value="<?php echo esc_attr($option_value['label'])?>"> <?php echo esc_html($option_value['label'])?></label>
<?php endif?>
<?php endif?>
<?php endforeach?>
<?php if(isset($field['description']) && $field['description']):?><div class="description"><?php echo $field['description']?></div><?php endif?>
</div>
</div>
<?php endif?>
<?php
$field_html = ob_get_clean();
}
return $field_html;
}
위의 코드에서 $meta_key == '메타키' 부분은 실제 입력 필드의 메타키로 적용해보세요.
$board->id == '1' 부분은 실제 게시판 id로 적용해주세요.
테마의 functions.php 파일에 코드를 추가하거나 Code Snippets 플러그인을 사용해서 코드를 추가할 수 있습니다.
고맙습니다.