게시판별로 글쓰는 제목을 고정시키고 싶어요

1. 정확한 제품 또는 플러그인 이름

kboard - theme functions

 

2. 상세 내용

안녕하세요. 게시판 제작을 하면서 https://www.cosmosfarm.com/threads/document/30813 위 링크를 참고하여 게시판에 제목 선택 리스트를 작성했습니다. 하지만 사이트 구축하면서 추가적으로 고정 제목 선택 형식 게시판을 추가하게 되었습니다. 기존에 있는 코드는

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="입금/결제 문의"<?php if($content->title == '입금/결제 문의'):?> selected<?php endif?>>입금/결제 문의</option>
		<option value="배송 문의"<?php if($content->title == '배송 문의'):?> selected<?php endif?>>배송 문의</option>
			<option value="배송 후 교환/반품 문의"<?php if($content->title == '배송 후 교환/반품 문의'):?> selected<?php endif?>>배송 후 교환/반품 문의</option>
				<option value="기타/문의"<?php if($content->title == '기타/문의'):?> selected<?php endif?>>기타/문의</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;
}

기존에 있는 게시판은 해당 코드를 추가했고 작동이 잘되었습니다. 그러나 

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 == '3'){ // 실제 게시판 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="동물병원"<?php if($content->title == '동물병원'):?> selected<?php endif?>>동물병원</option>
		<option value="온라인몰"<?php if($content->title == '온라인몰'):?> selected<?php endif?>>온라인몰</option>
			<option value="숙박시설"<?php if($content->title == '숙박시설'):?> selected<?php endif?>>숙박시설</option>
				<option value="기타"<?php if($content->title == '기타'):?> selected<?php endif?>>기타</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;
}

 

해당코드를 같은 function.php 파일에 적용시켰습니다만 워드프레스 전체 사이트가 오류가 나는 현상이 발생됬습니다. 수정하고 싶지만 방법을 몰라서 글을 남기게 되었습니다.

3. 확인 가능한 상세 페이지 주소

http://wp-lmy6585.mycafe24.com/qa/?mod=editor&pageid=1 이 링크가 기존에 추가했던 게시판 링크입니다. 그리고 http://wp-lmy6585.mycafe24.com/%ec%a0%9c%ed%9c%b4-%eb%ac%b8%ec%9d%98/ 위 링크가 새로 추가할 게시판 링크입니다.

 

4. 수정한 코드 내역 (있다면)

 

 

좋은 정보와 인맥을 동시에, 워드프레스 사용자 단톡방 참여하기
좋은 정보와 인맥을 동시에, 워드프레스 사용자 단톡방 참여하기
  • 안녕하세요~^^

    남겨주신 두개의 코드가 같은 이름으로 함수가 실행되서 오류가 나오는걸로 보여집니다.

    두번째 코드를 이렇게 교체해보시겠어요?

    add_filter('kboard_get_template_field_html', 'kboard_ask_one_get_template_field_html20220727', 10, 4);
    function kboard_ask_one_get_template_field_html20220727($html, $field, $content, $board){
    	if($field['meta_key'] == 'title' && $board->id == '3'){ // 실제 게시판 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="동물병원"<?php if($content->title == '동물병원'):?> selected<?php endif?>>동물병원</option>
    		<option value="온라인몰"<?php if($content->title == '온라인몰'):?> selected<?php endif?>>온라인몰</option>
    			<option value="숙박시설"<?php if($content->title == '숙박시설'):?> selected<?php endif?>>숙박시설</option>
    				<option value="기타"<?php if($content->title == '기타'):?> selected<?php endif?>>기타</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;
    }

    고맙습니다.

  • 앗 감사합니다~ 덕분에 해결했어요

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