상품상세페이지에 문의게시판 적용

안녕하세요.

문의게시판의 글작성시 제목글을 셀렉트형식으로 고정하려고 합니다. 스킨은 에스크원 스킨을 적용하였습니다.

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

해당 글을 참고하여 코드스니펫 플러그인을 통하여 적용하였으나

Cannot redeclare function kboard_ask_one_get_template_field_html.

위와같은 에러가 발생하며 적용되지 않습니다. 어떻게 수정적용해야 될까요?

감사합니다.

좋은 정보와 인맥을 동시에, 워드프레스 사용자 단톡방 참여하기
워드프레스 에러 기술지원 서비스 전문가에게 맡기세요
  • 안녕하세요~^^

    Cannot redeclare function 에러 메시지는 함수명 중복 문제로 보입니다.

    추가하신 코드 중 kboard_ask_one_get_template_field_html 함수가

    여러 번 선언되지 않았는지 확인해보셔야 할 듯합니다.

    만약, kboard_get_template_field_html 필터를 여러 번 적용해야 한다면

    kboard_ask_one_get_template_field_html 부분을

    kboard_ask_one_get_template_field_html1 이런 식으로 모두 교체해보시겠어요?

    고맙습니다.

  • 답변감사합니다.

    add_filter('kboard_get_template_field_html', 'kboard_ask_one_get_template_field_html', 10, 4);
    function kboard_ask_one_get_template_field_html($html, $field, $content, $board){
    	if($field['meta_key'] == 'title' && $board->id == '1'){ // 실제 게시판 id로 적용해주세요.
    		$meta_key = (isset($field['meta_key']) && $field['meta_key']) ? $field['meta_key'] : '';
    		$field_name = (isset($field['field_name']) && $field['field_name']) ? $field['field_name'] : $field['field_label'];;
    		$placeholder = (isset($field['placeholder']) && $field['placeholder']) ? $field['placeholder'] : '';
    		$default_value = (isset($field['default_value']) && $field['default_value']) ? $field['default_value'] : '';
    		
    		ob_start();
    		?>
    		<div class="kboard-attr-row <?php echo esc_attr($field['class'])?> required">
    			<label class="attr-name" for="<?php echo esc_attr($meta_key)?>"><span class="field-name"><?php echo esc_html($field_name)?></span> <span class="attr-required-text">*</span></label>
    			<div class="attr-value">
    				<select name="title" class="required">
    				<option value="문의"<?php if($content->title == '문의'):?> selected<?php endif?>>문의</option>
    				<option value="문의2"<?php if($content->title == '문의2'):?> selected<?php endif?>>문의2</option>
    				</select>
    				<?php if(isset($field['description']) && $field['description']):?><div class="description"><?php echo esc_html($field['description'])?></div><?php endif?>
    			</div>
    		</div>
    		<?php
    		$html = ob_get_clean();
    	}
    		
    	return $html;
    }

    링크된 게시글 답변에 남겨주신대로 위와 같이 적용하였습니다.

    위의 코드대로 적용하였을때 Cannot redeclare function kboard_ask_one_get_template_field_html 에러가 발생합니다.

    위의 남겨주신 코드상에 kboard_ask_one_get_template_field_html는 한번밖에 안보이는데 어떻게 수정을 해야 될까요?

  • 올려주신 코드 중 kboard_ask_one_get_template_field_html 부분을

    kboard_ask_one_get_template_field_html1로 모두 교체해보시겠어요?

    고맙습니다.

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