게시판관리자가 공지사항 작성했을 경우 카테고리 문의

안녕하세요~

항상 친절한 답변 감사드립니다.

다름아니라 https://imgur.com/a/4QDCu7n 처럼 관리자가 공지사항을 쓰면 게시판 맨 상단에 공지사항 글은 올라오는데

카테고리 분류시 '공지'를 만들어주고 공지글 작성하면 게시판 위 상단에도 보이고  '공지'카테고리로

분류도 되게 할수 있을까요?

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

    최신 버전의 KBoard 플러그인을 사용 중이시라면 공지사항도 카테고리 별로 분류가 됩니다.

    카테고리가 없을 경우엔 모든 공지사항이 표시되며

    카테고리가 있을 경우엔 해당 카테고리로 등록된 공지사항이 표시됩니다.

     

    '공지' 카테고리를 새로 만드신 후 공지사항 게시글 작성 시

    카테고리1을 공지로 설정해보시겠어요?

     

    카테고리1은

    워드프레스 관리자 -> KBoard -> 게시판 목록 -> 게시판 선택 -> 기본설정 페이지에서

    카테고리1 입력 필드에 콤마(,)로 구분해서 입력해보시겠어요?

    고맙습니다.

  • 설명을 잘 못해서 죄송합니다.^^;;

    https://imgur.com/a/oPPdikg 처럼 '전체'는 아예 안 보이고

    기본 보이는게 공지사항으로 보이면 되는데 위 알려주신 코드로 하면 될까요?

  • 카테고리 목록에서 전체를 안 보이게 하고

    공지사항 클릭 시 공지사항 카테고리만 보이고

    건의사항 클릭 시 건의사항 카테고리만 표시되게 하시려는 건지요?

     

    만약, 공지사항 클릭 시 공지사항 카테고리만 보인다면

    건의사항 카테고리를 클릭하시려면 고객만족센터 첫 페이지로 가서 선택을 해야 합니다.

    카테고리 선택 시 다른 카테고리를 선택하려면 다시 고객만족센터 메뉴를 클릭해서 이동하는 게 맞는지요?

    저희가 잘못 이해하고 있는 거라면 다시 설명해주시겠어요?

     

    카테고리 목록에서 전체 부분을 안 보이게 하는 건 스킨마다 다를 수도 있습니다.

    Default 스킨을 기준으로 안내해드리겠습니다.

    FTP로 접속해서 /wp-content/plugins/kboard/skin/사용중인스킨/list-category-default.php 파일에

    아래의 코드를 찾아서 모두 지워보시겠어요?

    <li<?php if(!kboard_category1()):?> class="kboard-category-selected"<?php endif?>><a href="<?php echo $url->set('category1', '')->set('pageid', '1')->set('target', '')->set('keyword', '')->set('mod', 'list')->tostring()?>"><?php echo __('All', 'kboard')?></a></li>

     

    모바일 화면의 셀렉트 박에서도 안 보이게 하시려면

    아래의 코드도 지워보시겠어요?

    <option value=""><?php echo __('All', 'kboard')?></option>

    고맙습니다.

  • 아 네. 고객만족센터 게시판에서

    https://imgur.com/a/OFkPmue

    처럼 이 게시판만 '전체'표시 안되게 하고 싶어서요^^;

    공지사항은 공지사항 카테고리안에서만 보이고, 건의사항은 건의사항 카테고리안에서만 보이게요.

  • KBoard 게시판 플러그인 카테고리에서 전체 부분을 안 보이게 하면 되는 것인지요?

    처음 페이지가 로딩될 때는 어떠한 조건으로 목록이 표시되어야 하는지요?

    질문이 이해가 잘 안 갑니다.

    좀 더 자세한 상황을 설명해주시겠어요?

    고맙습니다.

  • 도움 감사드립니다^^

    한가지 더 여쭤보면 만약 고객만족센터란 게시판을 생성해서 그 게시판만 카테고리 분류해서 글쓰기 하면 '전체'는 표시 안되고 예를 들어서 분류를 공지, 건의, Q&A 로 3가지로 분류하면 선택한 카테고리로만 글이 분류되서 보이게도 가능할까요?

  • 안녕하세요.

    여러 개의 게시판에 적용하시려면

    $board_id == '1' 코드를 in_array($board_id, array('1', '2', '3')) 이런 식으로 적용해보시겠어요?

     

    설명 쪽 클래스명만 바꾸시려면

    아래의 코드처럼 적용해주세요.

    <?php if(isset($field['description']) && $field['description']):?><div class="info"><?php echo esc_html($field['description'])?></div><?php endif?>

     

    kboard_list_where 필터를 사용하시면

    게시글 목록을 가져오는 DB쿼리문의 WHERE절을 편집하실 수 있습니다.

    말씀하신 것처럼 하시려면 프로그래밍에 대한 지식이 어느 정도 있어야 할 듯합니다.

    고맙습니다.

  • 아, 그리고, 제가 실제 적용하는 게시판 id  '1','2','3' 이렇게 여러개 적용했는데 또 에러가 난거 같아서요.. 여러개 적용할수도 있을까요? 

  • 감사합니다! 잘 적용되었어요^^

    추가로 필요한 카테고리가 있어서 위 코드를 그대로 복사하고 아래처럼 카테고리 이름은 '정보'로 정하고 아래쪽 class도 'info'로 수정했더니 홈페이지가 안 열리네요. 

    해당 게시판의 운영자인 관리자가 자기를 소개하는 글 1개를 '정보'카테고리에 넣으려고 하는거거든요. 아래 코드 수정할수 있을까요?

    아울러서 만약 '정보'카테고리에는 관리자가 자기를 소개한 글이 보여지지만, 전체 게시판 목록에서는 그 글만 안보이게 설정하는것도 가능할까요? 어려운 질문드려 죄송합니다.^^;

    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'] == 'category1' && $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'];;
    		$required = (isset($field['required']) && $field['required']) ? 'required' : '';
    		
    		ob_start();
    		?>
    		<?php if(!$board->isTreeCategoryActive()):?>
    			<?php if($board->initCategory1()):?>
    				<div class="kboard-attr-row <?php echo esc_attr($field['class'])?> <?php echo esc_attr($required)?>">
    					<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 echo esc_attr($required)?>">
    							<option value=""><?php echo __('Category', 'kboard')?> <?php echo __('Select', 'kboard')?></option>
    							<?php while($board->hasNextCategory()):?>
    							<?php if(!$board->isAdmin() && $board->currentCategory() == '정보') continue?>
    							<option value="<?php echo $board->currentCategory()?>"<?php if($content->category1 == $board->currentCategory()):?> selected<?php endif?>><?php echo $board->currentCategory()?></option>
    							<?php endwhile?>
    						</select>
    						<?php if(isset($field['info']) && $field['info']):?><div class="info"><?php echo esc_html($field['info'])?></div><?php endif?>
    					</div>
    				</div>
    			<?php endif?>
    		<?php endif?>
    		<?php
    		$html = ob_get_clean();
    	}
    		
    	return $html;
    }
    
    

     

  • 게시글 작성 시 특정 카테고리1을 관리자에게만 표시하시려면

    워드프레스 관리자 -> 외모(테마 디자인) -> 테마 편집기 페이지에서 functions.php 파일 하단에

    아래의 코드를 추가해보시겠어요?

    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'] == 'category1' && $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'];;
    		$required = (isset($field['required']) && $field['required']) ? 'required' : '';
    		
    		ob_start();
    		?>
    		<?php if(!$board->isTreeCategoryActive()):?>
    			<?php if($board->initCategory1()):?>
    				<div class="kboard-attr-row <?php echo esc_attr($field['class'])?> <?php echo esc_attr($required)?>">
    					<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 echo esc_attr($required)?>">
    							<option value=""><?php echo __('Category', 'kboard')?> <?php echo __('Select', 'kboard')?></option>
    							<?php while($board->hasNextCategory()):?>
    							<?php if(!$board->isAdmin() && $board->currentCategory() == '공지') continue?>
    							<option value="<?php echo $board->currentCategory()?>"<?php if($content->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
    		$html = ob_get_clean();
    	}
    		
    	return $html;
    }

    위의 코드에서 $board->id == '1' 부분은 실제 게시판 id로 적용해주세요.

    만약, "공지" 카테고리가 아닌 다른 카테고리를 관리자 외에 안 보이게 하시려면

    공지 부분을 다른 카테고리로 적용해보시겠어요?

    고맙습니다.

     

  • 안녕하세요~

    알려주신대로 했더니 " https://xion.kr/?page_id=83&mod=list&pageid=1&category1=공지 "

    처럼 글쓰기 권한만 부여한 아이디에게도 '공지' 카테고리를 선택할 수 있어서

    이 작성자가 '공지'를 선택하면 공지 카테고리로 글이 분류되어버리는데

    방법이 없을까요?

  • 말씀하신 것처럼 적용하시려면

    카테고리 쪽 코드를 수정해주셔야 할 듯합니다.

    저희도 좋은 방법이 있을지 고민해보겠습니다.

    고맙습니다.

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