코스모스팜 스레드

페이지의 기본 정렬 설정을 업데이트순으로 바꾸는 방법?

page-1 이 있고 page-2가 있는데

page-1은 기본 정렬을 업데이트순으로 하고 싶고

page-2는 조회순으로 하고 싶습니다.

 

어떻게 해야하나요?

코스모스팜 회원관리
코스모스팜 회원관리
  • 안녕하세요~^^

    KBoard 플러그인에서 kboard_list_default_sorting 필터를 사용하시면 게시글 정렬순서를 변경할 수 있습니다.

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

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

    add_filter('kboard_list_default_sorting', 'my_kboard_list_default_sorting', 10, 3);
    function my_kboard_list_default_sorting($default_sorting, $board_id, $content_list){
    	if($board_id == '1'){
    		$default_sorting = 'updated';
    	}
    	else if($board_id == '2'){
    		$default_sorting = 'viewed';
    	}
    	return $default_sorting;
    }

    위의 코드에서 $board_id는 실제 게시판 id로 적용해보세요.

    $default_sorting = 'updated'; 부분이 업데이트순이며 $default_sorting = 'viewed'; 부분이 조회순으로 정렬하는 코드입니다.

    고맙습니다.

  • 운영자님께 도움을 많이 받아서 대신하여 답변을 드립니다. (틀린 부분이 있을 수 있습니다;;)

     

    기본 정렬을 바꾸려면 사용하시는 스킨의 list.php 파일을 수정하셔야 합니다.

    1. 예를 들어 기본정렬을 업데이트로 하려면 아래의 코드를 찾아

    <select name="kboard_list_sort" onchange="jQuery('#kboard-sort-form-<?php echo $board->id?>').submit();">
    					<option value="newest"<?php if($list->getSorting() == 'newest'):?> selected<?php endif?>><?php echo __('Newest', 'kboard')?></option>
    					<option value="best"<?php if($list->getSorting() == 'best'):?> selected<?php endif?>><?php echo __('Best', 'kboard')?></option>
    					<option value="viewed"<?php if($list->getSorting() == 'viewed'):?> selected<?php endif?>><?php echo __('Viewed', 'kboard')?></option>
    					<option value="updated"<?php if($list->getSorting() == 'updated'):?> selected<?php endif?>><?php echo __('Updated', 'kboard')?></option>
    				</select>

    아래와 같이 바꿔 주시면 됩니다.

    <select name="kboard_list_sort" onchange="jQuery('#kboard-sort-form-<?php echo $board->id?>').submit();">
    					<option value="updated"<?php if($list->getSorting() == 'updated'):?> selected<?php endif?>><?php echo __('Updated', 'kboard')?></option>
    					<option value="newest"<?php if($list->getSorting() == 'newest'):?> selected<?php endif?>><?php echo __('Newest', 'kboard')?></option>
    					<option value="best"<?php if($list->getSorting() == 'best'):?> selected<?php endif?>><?php echo __('Best', 'kboard')?></option>
    					<option value="viewed"<?php if($list->getSorting() == 'viewed'):?> selected<?php endif?>><?php echo __('Viewed', 'kboard')?></option>
    </select>

    2. 페이지 별로 기본정렬 순서를 다르게 하려면 페이지마다 다른 스킨을 사용하셔서 스킨을 위와 같이 수정하여 사용하시면 될 것 같습니다.

    3. 정렬순서를 '업데이트순'으로 선택하면 해당 게시판은 그 정렬순서를 기억하여 다음에 그 페이지를 방문해도 '업데이트순'으로 정렬되어 있습니다. 개인적으로 스킨을 수정하여 사용하는 방법보다는 사용자 필요에 따라 선택하여 반영하시는것을 추천합니다.  왜냐하면 일반적인 사용자들은 기본적으로 '최신순'에 익숙해져 있기 때문에 기본정렬 순서가 바뀌면 혼란스러울 것 같습니다. 

코스모스팜 회원관리