add_filter('kboard_list_from', 'my_kboard_list_from', 10, 3);
function my_kboard_list_from($from, $board_id, $content_list){
if($board_id == '1'){
global $wpdb;
$from = "`{$wpdb->prefix}kboard_board_content` LEFT JOIN `{$wpdb->prefix}kboard_board_option` ON `{$wpdb->prefix}kboard_board_content`.`uid`=`{$wpdb->prefix}kboard_board_option`.`content_uid`";
}
return $from;
}
add_filter('kboard_list_orderby', 'my_kboard_list_orderby', 10, 3);
function my_kboard_list_orderby($order, $board_id, $content_list){
if($board_id == '1'){
global $wpdb;
$order = "`{$wpdb->prefix}kboard_board_option`.`option_value` ASC";
}
return $order;
}
현재 option필드중 top이라는 이름이 'top'값을 가졌을때 먼저 보이게 하고 top값이 아닌 애들을 date순서대로 정렬하고 싶습니다.
kboard_option_top값은 글쓰기 또는 수정에서 체크박스로 삽입되는 상태입니다.
kboard_list_orderby에서 어떻게 진행해야 할지 막히고 있습니다.
감사합니다.
안녕하세요~^^
ORDER BY절에 여러 개로 적용해서 정렬하실 수 있습니다.
구글에 "mysql order by 2개" 키워드로 검색하셔서
관련 자료들을 확인해보시겠어요?
고맙습니다.
감사합니다
궁금한것은 아래와 같습니다.
현재 option필드중 top이라는 이름이 'top'값을 가졌을때 먼저 보이게 하고 top값이 아닌 애들을 date순서대로 정렬하고 싶습니다.
from부분에서 content.uid = option.content_uid 이런식으로 모든 옵션 데이터를 가져오고 있습니다.
어떻게 해야 option테이블의 key값이 top이고 value값이 top인 애들을 1순위로 정렬할 수 있을까요?
특정 입력 필드의 값이 있는 게시글을 상단에 고정하고 싶으신 건지요?
아래 링크의 2번 3번 답변을 참고하셔서 코드를 수정해보시겠어요?
https://www.cosmosfarm.com/threads/document/21839#document-answer-21869
고맙습니다.
감사합니다.
해당방법은 알고 있으나 코드가 길어지는것을 원치 않습니다 ㅠㅠ
kboard_list_from
kboard_list_orderby
두개로는 할 수 없는 방법인가요?
option의 key값과 value값을 특정할 수 있다면 아래처럼 쓸 수 있을거 같습니다.
ORDER BY optionTable.value ASC, contentTable.date ASC
option의 key값과 value값을 어떻게 top이라는걸로 특정할 수 있을까요?