기본 카테고리와 계층형 카테고리 동시사용

퓨어갤러리 스킨 사용 중 입니다. 다름이 아니라

https://www.cosmosfarm.com/threads/document/26515 이 곳의 방법으로 카테고리가 두 개 나타나는 것은 성공했습니다만 문제가 있습니다.

 

게시판 목록 및 관리 - 카테고리 선택 - 기본 카테고리  사용 시에는 모든 depth 의 카테고리가 보여집니다. 그러나 글쓰기 화면에서는 기본 카테고리 선택은 정상 작동하지만 계층형 카테고리 선택이 비활성화되어 지정할 수 없게 됩니다.

하지만 계층형 카테고리 사용 으로 설정 시에는 글쓰기 화면에서 정상적으로 카테고리 지정이 가능합니다만 게시판 리스트 화면에서 기본카테고리는 여전히 정상적으로 표현되지만 계층형 카테고리는 1depth 까지만 선택할 수 있게 됩니다. (가장 상위의 카테고리 선택만 뜨고 하위 카테고리는 선택이 뜨지 않습니다.)

 

퓨어갤러리의 list 파일을 수정한 코드 입니다.

<?php
echo $skin->load($board->skin, "list-category-default.php", $vars);
echo $skin->load($board->skin, "list-category-tree-tab.php", $vars);
?>

 

function.php 에 추가한 코드 입니다.

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'){
		if($field['field_type'] == 'category1'){
			ob_start();
			?>
			<?php if($board->initCategory1()):?>
			<div class="kboard-attr-row">
				<label class="attr-name" for="kboard-select-category1"><?php echo __('Category', 'kboard')?>1</label>
				<div class="attr-value">
					<select id="kboard-select-category1" name="category1">
						<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 == $board->currentCategory()):?> selected<?php endif?>><?php echo $board->currentCategory()?></option>
						<?php endwhile?>
					</select>
				</div>
			</div>
			<?php endif?>
			<?php if($board->initCategory2()):?>
			<div class="kboard-attr-row">
				<label class="attr-name" for="kboard-select-category2"><?php echo __('Category', 'kboard')?>2</label>
				<div class="attr-value">
					<select id="kboard-select-category2" name="category2">
						<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 == $board->currentCategory()):?> selected<?php endif?>><?php echo $board->currentCategory()?></option>
						<?php endwhile?>
					</select>
				</div>
			</div>
			<?php endif?>
			<div class="kboard-attr-row">
				<label class="attr-name" for="kboard-tree-category"><?php echo __('Category', 'kboard')?></label>
				<div class="attr-value">
					<?php for($i=1; $i<=$content->getTreeCategoryDepth(); $i++):?>
					<input type="hidden" id="tree-category-check-<?php echo $i?>" value="<?php echo $content->option->{'tree_category_'.$i}?>">
					<input type="hidden" name="kboard_option_tree_category_<?php echo $i?>" value="">
					<?php endfor?>
					<div class="kboard-tree-category-wrap"></div>
				</div>
			</div>
			<?php
			$field_html = ob_get_clean();
		}
		else if($field['field_type'] == 'category2' || $field['field_type'] == 'tree_category'){
			$field_html = '';
		}
	}
	
	return $field_html;
}

 

1. 기본카테고리와 계층형 카테고리의 모든 depth가 나타나면서, 글쓰기 화면에서도 문제가 생기지 않게 하는 방법 과

2. 여러 개의 보드에서 가능하게끔 하려면 어떻게 해야하나요? 비슷한 기존 스레드에서 in_array  방법을 참고하여 적용했으나 에러가 생겨 일일히 if 문으로 복사 붙여넣기 해서 사용했습니다.

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