워드프레스 게시판 KBoard(케이보드)에 필드 추가한 것이 검색되게 하고 싶습니다.
대략적인 방법이나.. 혹은 다음 버전에서 검색이 되게 할 계획이 있으신지요..ㅜㅜ
안녕하세요.
알려드립니다.
KBoard 게시판 플러그인 5.3.3 버전 이상을 사용하고 있다면,
테마의 functions.php 파일에 코드를 추가할 필요가 없습니다.
KBoard 게시판과 댓글 플러그인 업데이트 방법은
아래 페이지에서 최신 플러그인 파일을 다운로드해주세요.
http://www.cosmosfarm.com/products/kboard
압축을 해제한 다음
FTP로 접속해서 각각의 플러그인 폴더에 파일을 업로드(덮어쓰기) 해주세요.
/wp-content/plugins/kboard
/wp-content/plugins/kboard-comments
경로는 위와 같습니다.
고맙습니다.
간단히 만들어봤습니다.
게시판 스킨 list.php 파일에 검색 코드를 추가해주세요.
/wp-content/plugins/kboard/skin/사용중인스킨/list.php 파일입니다.
추가하신 입력 필드의 name 값과 이름 등을 써주세요.
<select name="target">
<option value=""><?php echo __('All', 'kboard')?></option>
<option value="title"<?php if(kboard_target() == 'title'):?> selected="selected"<?php endif?>><?php echo __('Title', 'kboard')?></option>
<option value="content"<?php if(kboard_target() == 'content'):?> selected="selected"<?php endif?>><?php echo __('Content', 'kboard')?></option>
<option value="member_display"<?php if(kboard_target() == 'member_display'):?> selected="selected"<?php endif?>><?php echo __('Author', 'kboard')?></option>
<option value="kboard_option_newfield"<?php if(kboard_target() == 'kboard_option_newfield'):?> selected="selected"<?php endif?>>새로운필드</option>
</select>
그 다음 테마의 functions.php 파일에 아래 코드를 추가해주세요.
add_filter('kboard_list_where', 'my_kboard_list_where', 10, 3);
function my_kboard_list_where($where, $board_id, $content_list){
global $wpdb;
$skin_option_prefix = 'kboard_option_';
$key = kboard_target();
if(strpos($key, $skin_option_prefix) !== false){
$key = sanitize_key(str_replace($skin_option_prefix, '', $key));
$value = kboard_safeiframe(kboard_xssfilter(kboard_keyword()));
$key = esc_sql($key);
$value = esc_sql($value);
$where = "`board_id`='$board_id' AND `uid` IN (SELECT `content_uid` FROM `{$wpdb->prefix}kboard_board_option` WHERE `option_key`='$key' AND `option_value` LIKE '%{$value}%') AND `notice`='' AND `parent_uid`='0' AND (`status`='' OR `status` IS NULL OR `status`='pending_approval')";
}
return $where;
}
일부 버그나 속도가 느린 등 문제가 있을 수 있습니다.
차후 업데이트에서 최적화된 기능을 추가하도록 하겠습니다.