안녕하세요. 워드프레스 게시판 KBoard(케이보드)의 컨택트폼 스킨을 사용중인데,
https://www.cosmosfarm.com/threads/document/39928
해당 게시글 참고하여, "연락처" 라는 입력필드를 추가했습니다.
본문에 출력되는 거 까지 반영 완료되었는데,
관리자가 글 수정 시, 입력필드 부분에 공란으로 나옵니다 ㅠㅠ
이 부분은 어떻게 해야되나요
완전 감사합니다!!! ㅠㅠ
kboard_get_template_field_html 필터 쪽을 수정해주셔야 합니다.
올려주신 코드 중 아래의 코드를 찾아서
<div class="attr-value">
<input type="text" id="phone-number1" name="kboard_option_<?php echo esc_attr($field['meta_key'])?>1" class="required" onKeyup="inputMoveNumber(this);" minlength="2" maxlength="3"> -
<input type="text" id="phone-number2" name="kboard_option_<?php echo esc_attr($field['meta_key'])?>2" onKeyup="inputMoveNumber(this);" minlength="2" maxlength="4" /> -
<input type="text" id="phone-number3" name="kboard_option_<?php echo esc_attr($field['meta_key'])?>3" onKeyup="inputMoveNumber(this);" minlength="2" maxlength="4" />
</div>
아래의 코드로 교체해보시겠어요?
<div class="attr-value">
<input type="text" id="phone-number1" name="kboard_option_<?php echo esc_attr($field['meta_key'])?>1" class="required" onKeyup="inputMoveNumber(this);" value="<?php echo $content->option->{$field['meta_key'].'1'}?>" minlength="2" maxlength="3"> -
<input type="text" id="phone-number2" name="kboard_option_<?php echo esc_attr($field['meta_key'])?>2" onKeyup="inputMoveNumber(this);" value="<?php echo $content->option->{$field['meta_key'].'2'}?>" minlength="2" maxlength="4" /> -
<input type="text" id="phone-number3" name="kboard_option_<?php echo esc_attr($field['meta_key'])?>3" onKeyup="inputMoveNumber(this);" value="<?php echo $content->option->{$field['meta_key'].'3'}?>" minlength="2" maxlength="4" />
</div>
고맙습니다.
우선 funcions.php 파일에 아래 코드 넣었고,
add_filter('kboard_skin_fields', 'my_kboard_skin_fields8', 10, 2);
function my_kboard_skin_fields8($fields, $board){
if($board->id == '1'){ // 실제 적용될 게시판 ID 값으로 변경해주세요.
if(!isset($fields['phone-number'])){
$fields['phone-number'] = array(
'field_type' => 'phone-number',
'field_label' => '연락처',
'class' => 'kboard-attr-text',
'hidden' => '',
'meta_key' => 'phone-number',
'field_name' => '',
'permission' => '',
'roles' => '',
'default_value' => '',
'placeholder' => '',
'required' => '',
'show_document' => '',
'description' => '',
'close_button' => 'yes'
);
}
}
return $fields;
}
add_filter('kboard_get_template_field_html', 'my_kboard_get_template_field_html8', 10, 4);
function my_kboard_get_template_field_html8($field_html, $field, $content, $board){
if($field['field_type'] == 'phone-number'){
ob_start();
?>
<div class="kboard-attr-row meta-key-<?php echo esc_attr($field['meta_key'])?> required">
<label class="attr-name" for="phone-number">
<span class="field-name">연락처</span>
<span class="attr-required-text">*</span>
</label>
<div class="attr-value">
<input type="text" id="phone-number1" name="kboard_option_<?php echo esc_attr($field['meta_key'])?>1" class="required" onKeyup="inputMoveNumber(this);" minlength="2" maxlength="3"> -
<input type="text" id="phone-number2" name="kboard_option_<?php echo esc_attr($field['meta_key'])?>2" onKeyup="inputMoveNumber(this);" minlength="2" maxlength="4" /> -
<input type="text" id="phone-number3" name="kboard_option_<?php echo esc_attr($field['meta_key'])?>3" onKeyup="inputMoveNumber(this);" minlength="2" maxlength="4" />
</div>
</div>
<script type="text/javascript">
function inputMoveNumber(num) {
if(isFinite(num.value) == false) {
alert("연락처는 숫자만 입력할 수 있습니다.");
num.value = "";
return false;
}
max = num.getAttribute("maxlength"); // 3글자 쓰면 자동으로 다음 칸 넘어가기
if(num.value.length >= max) {
num.nextElementSibling.focus();
}
}
</script>
<?php
$field_html = ob_get_clean();
}
return $field_html;
}
admin-document.php 에는 <?php echo $content->content?> 아래 넣었습니다.
<div class="kboard-content" itemprop="description">
<div class="content-view">
<?php echo $content->getDocumentOptionsHTML()?>
<?php echo $content->content?>
<p>연락처 : <?php echo $content->option->{'phone-number1'}?>-<?php echo $content->option->{'phone-number2'}?>-<?php echo $content->option->{'phone-number3'}?>
</p>
</div>
</div>