검색 시 추가한 확장 필드값 검색

일단 기존에 옵션1을 기준으로 커스텀 정렬로 목록을 보이게 한 상태라 

function my_kboard_list_from($from, $board_id, $content_list){
    if($board_id == '10'){
        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_from', 'my_kboard_list_from', 10, 3);

function my_kboard_list_where($where, $board_id, $content_list){
    if($board_id == '10'){
        global $wpdb;
        $meta_key = 'addinfo4';
        $where .= " AND (`option_key`='{$meta_key}' )";
    }
    return $where;
}
add_filter('kboard_list_where', 'my_kboard_list_where', 10, 3);

function my_kboard_list_orderby($order, $board_id, $content_list){
    if($board_id == '10'){
        global $wpdb;
        $order = "`{$wpdb->prefix}kboard_board_option`.`option_value` DESC";
    }
    return $order;
}
add_filter('kboard_list_orderby', 'my_kboard_list_orderby', 10, 3);

functions.php에 위 코드가 추가되어있습니다.

 

게시판 내 검색 폼 사용시에 제목, 컨텐츠, 작성자만 아니라

추가한 확장필드 값 검색도 가능했으면 하는 데 검색 한 대로 작업을 해도 적용이 안되서 문의 드립니다.

<form id="kboard-search-form-<?php echo $board->id?>" class="form-row" method="get" action="<?php echo esc_url($url->toString())?>">
            <?php echo $url->set('pageid', '1')->set('target', '')->set('keyword', '')->set('mod', 'list')->toInput()?>
            <select name="target" style="display: none">
                <option value=""><?php echo __('All', 'kboard')?></option>
                <option value="title"<?php if(kboard_target() == 'title'):?> selected<?php endif?>><?php echo __('Title', 'kboard')?></option>
                <option value="content"<?php if(kboard_target() == 'content'):?> selected<?php endif?>><?php echo __('Content', 'kboard')?></option>
                <option value="member_display"<?php if(kboard_target() == 'member_display'):?> selected<?php endif?>><?php echo __('Author', 'kboard')?></option>
                <option value="kboard_option_addinfo4" <?php if(kboard_target() == 'kboard_option_addinfo4'):?> selected<?php endif?>>옵션1</option>
                <option value="kboard_option_addinfo3" <?php if(kboard_target() == 'kboard_option_addinfo3'):?> selected<?php endif?>>옵션2</option>
            </select>
            <div class="col"><input type="text" name="keyword" class="form-control" value="<?php echo esc_attr(kboard_keyword())?>" placeholder="검색어를 입력해주세요"></div>
            <div class="col-auto"><button type="submit" class="btn btn-primary"><i class="icon-search">search</i></button></div>
        </form>

list.php은 현재 위코드 처럼 되어있습니다. 

selelct부분에

<option value="kboard_option_addinfo4" <?php if(kboard_target() == 'kboard_option_addinfo4'):?> selected<?php endif?>>옵션1</option>
<option value="kboard_option_addinfo3" <?php if(kboard_target() == 'kboard_option_addinfo3'):?> selected<?php endif?>>옵션2</option>

해당 코드들 추가한건데


1. 옵션1로 선택 시에는 검색이 되지만, 옵션2 값으로는 선택 후에 검색하면 목록이 나오지 않습니다.
2. 전체로 선택후 옵션1에 들어가있는 텍스트로 검색 시에 아무것도 나오지 않습니다. (옵션1로 선택후에는 나옴)

 

옵션1로 정렬되있는 목록을 유지하면서 전체검색에 옵션1, 옵션2에 들어있는 글자도 모두 필터링 될 수 있도록 하려면 코드를 어떻게 수정해야하나요ㅠ

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