KBoard(케이보드) 입력필드 추가 관련 문의드립니다

안녕하세요. 워드프레스 게시판 KBoard(케이보드)의 컨택트폼 스킨을 사용중인데,

https://www.cosmosfarm.com/threads/document/39928

해당 게시글 참고하여, "연락처" 라는 입력필드를 추가했습니다.

본문에 출력되는 거 까지 반영 완료되었는데,

관리자가 글 수정 시, 입력필드 부분에 공란으로 나옵니다 ㅠㅠ

이 부분은 어떻게 해야되나요

워드프레스 에러 기술지원 서비스 전문가에게 맡기세요
워드프레스 에러 기술지원 서비스 전문가에게 맡기세요
  • 안녕하세요~^^

    추가하신 코드만 에디터의 코드 스니펫 삽입 기능으로 올려주시겠어요?

    고맙습니다.

  • 우선 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">&nbsp;-&nbsp;
    				<input type="text" id="phone-number2" name="kboard_option_<?php echo esc_attr($field['meta_key'])?>2" onKeyup="inputMoveNumber(this);" minlength="2" maxlength="4" />&nbsp;-&nbsp;
    				<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>

     

  • 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">&nbsp;-&nbsp;
    	<input type="text" id="phone-number2" name="kboard_option_<?php echo esc_attr($field['meta_key'])?>2" onKeyup="inputMoveNumber(this);" minlength="2" maxlength="4" />&nbsp;-&nbsp;
    	<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">&nbsp;-&nbsp;
    	<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" />&nbsp;-&nbsp;
    	<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>

    고맙습니다.

  • 완전 감사합니다!!! ㅠㅠ

좋은 정보와 인맥을 동시에, 워드프레스 사용자 단톡방 참여하기