글 작성 시 게시판 분류 강제 지정 시 질문

제작자님 항상 감사합니다.

 

일전에 답변해주신 게시판 강제 지정 코드로 글 작성 시에 게시판이 자동으로 지정이 되었습니다!

감사합니다.

 

그런데 전체보기에서 즉, 게시판에서 전체 | 카테고리1 | 카테고리2 이렇게 있을 때 전체를 클릭한 후 글 작성을 해버리니 필수로 지정을 해도 카테고리가 비어있는 상태에서 글이 작성이 되어 버리더라구요.

 

혹시 전체를 클릭했을 때 글을 써도 분류가 선택되어 있지 않으면 글을 방지하는 방법이 있을까요?

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

    kboard_get_template_field_html 필터를 활용해서 코드를 추가하신 건지요?

    기존의 코드 대신 아래의 코드를 활용해보시겠어요?

    add_filter('kboard_get_template_field_html', 'my_kboard_get_template_field_html', 10, 4);
    function my_kboard_get_template_field_html($field_html, $field, $content, $board){
    	if($board->id == '1'){ // 실제 게시판 id로 적용해주세요.
    		if($field['field_type'] == 'category1'){
    			$fields = $board->fields();
    			$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'];;
    			$required = (isset($field['required']) && $field['required']) ? $field['required'] : $field['required'];;
    			
    			ob_start();
    			?>
    			<?php if(!$board->isTreeCategoryActive()):?>
    				<?php if($board->initCategory1()):?>
    					<div class="kboard-attr-row <?php echo esc_attr($field['class'])?><?php if($required):?> required<?php endif?>">
    						<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">
    							<select id="<?php echo esc_attr($meta_key)?>" name="category1" class="<?php if($required):?> required<?php endif?>">
    								<option value=""><?php echo __('Category', 'kboard')?> <?php echo __('Select', 'kboard')?></option>
    								<?php while($board->hasNextCategory()):?>
    								<option value="<?php echo $board->currentCategory()?>"<?php if(($content->category1?$content->category1:kboard_category1()) == $board->currentCategory()):?> selected<?php endif?>><?php echo $board->currentCategory()?></option>
    								<?php endwhile?>
    							</select>
    							<?php if(isset($field['description']) && $field['description']):?><div class="description"><?php echo esc_html($field['description'])?></div><?php endif?>
    						</div>
    					</div>
    				<?php endif?>
    			<?php endif?>
    			<?php
    			$field_html = ob_get_clean();
    		}
    		else if($field['field_type'] == 'category2'){
    			$fields = $board->fields();
    			$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'];;
    			$required = (isset($field['required']) && $field['required']) ? $field['required'] : $field['required'];;
    			
    			ob_start();
    			?>
    			<?php if(!$board->isTreeCategoryActive()):?>
    				<?php if($board->initCategory2()):?>
    					<div class="kboard-attr-row <?php echo esc_attr($field['class'])?><?php if($required):?> required<?php endif?>">
    						<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">
    							<select id="<?php echo esc_attr($meta_key)?>" name="category2" class="<?php if($required):?> required<?php endif?>">
    								<option value=""><?php echo __('Category', 'kboard')?> <?php echo __('Select', 'kboard')?></option>
    								<?php while($board->hasNextCategory()):?>
    								<option value="<?php echo $board->currentCategory()?>"<?php if(($content->category2?$content->category2:kboard_category2()) == $board->currentCategory()):?> selected<?php endif?>><?php echo $board->currentCategory()?></option>
    								<?php endwhile?>
    							</select>
    							<?php if(isset($field['description']) && $field['description']):?><div class="description"><?php echo esc_html($field['description'])?></div><?php endif?>
    						</div>
    					</div>
    				<?php endif?>
    			<?php endif?>
    			<?php
    			$field_html = ob_get_clean();
    		}
    	}
    	
    	return $field_html;
    }

    위의 코드를 적용하시면

    카테고리1과 카테고리2를 워드프레스 관리자 페이지 입력필드 설정에서

    필수로 설정할 경우 필수로 선택해야 게시글이 저장됩니다.

    고맙습니다.

  • 허억- 잘 적용 되네요! 고맙습니다 역시 제작자님..!

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