게시판 항목 정렬 최신순이 아니라

안녕하세요~

게시판 항목 정렬을 최신순이 아니라 가나다순을 기본으로 변경 할 수 있을까여?

가나다순이 항상 선택되어 노출되도록 하는 것을 말씀드려요~

확인 부탁드립니다~ 

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

    kboard_list_orderby 필터를 활용하시면 게시판 리스트 정렬 순서를 바꿀 수 있습니다.

    KBoard 플러그인 주요 액션, 필터에 대한 자세한 내용은

    아래의 링크를 참고해보세요.

    https://www.cosmosfarm.com/products/kboard/hooks

    고맙습니다.

  • 오..제가 훅을 직접적으로 하지는 못하여서요;

    기존 등록된 내용들을 보니 기존 업데이트나 다른 정렬들에 대한 방법들은 확인해서 응용해서 해봤는데 에러가 나서요 ;;ㅠㅠ

    가나다 순일 경우는 어찌해야하는지 좀 부탁드립니다~

    list.php에서 첫번째로 변경은 가능하나 function 에서 if문을 어떻게 해야하는지 좀 부탁드립니다~~~

  • 아 그리고 단순 순서가 아니라 기본적으로 최신순이 먼저 선택되어서 노출이 되는형태인데

    기본이 가나다순으로 선택되서 노출되어지길 원하는 것입니다~

  • 안녕하세요.

    KBoard 플러그인을 원하시는 대로 커스텀을 하시려면

    어느 정도 프로그래밍에 대한 지식이 있어야 합니다.

     

    게시글 목록 페이지에서 제목을 기준으로 가나다순으로 정렬하고 싶으신 건지요?

    사용 중이신 스킨에 따라 코드가 조금 다를 수 있기 때문에

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

     

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

    아래의 코드를 찾아서

    <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="korean_alphabet"<?php if($list->getSorting() == 'korean_alphabet'):?> selected<?php endif?>>가나다순</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>
    	<option value="updated"<?php if($list->getSorting() == 'updated'):?> selected<?php endif?>><?php echo __('Updated', 'kboard')?></option>
    </select>

     

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

    아래의 코드를 추가해보세요.

    add_filter('kboard_list_default_sorting', 'kboard_list_default_sorting_2020_03_10', 10, 3);
    function kboard_list_default_sorting_2020_03_10($default_sorting, $board_id, $list){
    	if($board_id == '1'){ // 실제 게시판 id로 적용해주세요.
    		$default_sorting = 'korean_alphabet';
    	}
    	
    	return $default_sorting;
    }
    
    add_filter('kboard_list_orderby', 'kboard_list_orderby_2020_03_10', 10, 3);
    function kboard_list_orderby_2020_03_10($order,	$board_id, $content_list){
    	if($board_id == '1'){ // 실제 게시판 id로 적용해주세요.
    		// 제목 기준으로 가나다순 오름차순으로 정렬합니다.
    		$order = "`title` ASC";
    	}
    	
    	return $order;
    }

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

    ASC 부분을 DESC로 교체하시면 내림차순으로 정렬하실 수 있습니다.

     

    코드 수정이 어려우시다면 유료 기술지원을 요청해주시길 부탁드립니다.

    고맙습니다.

  • KBoard 플러그인 정렬 기능은

    브라우저 쿠기, 세션 기능을 활용하고 있기 때문에

    해당 코드 적용 후 브라우저의 데이터를 지우신 후 확인해보시겠어요?

    또는 크롬 브라우저 시크릿 모드로 확인해보세요.

    고맙습니다.

  • 네~ 좀 더 응용해서 다 적용했습니다 :)

    항상 감사합니다!

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