안녕하세요, 오늘 KBOARD를 처음 설치해보고 최근글 리스트 가져오는 숏코드가 없어 간단하게(당장 그냥 쓸수만 있도록?) 만들었습니다
검색해보니 KBOARD 개발자분이 향후 추가 할 예정이라고 하니 급하신 분들만 쓰시라고 공유해드립니다
1. 소스코드 추가
/wp-content/plugins/kboard/index.php 를 열어서
add_shortcode("kboard", "kboard_builder"); function kboard_builder($atts){ ...
이 부분 위쪽에 아래 코드를 추가합니다
/** * 메인페이지 최근글 리스트 숏코드 * @Author : www.plannity.kr */ add_shortcode("kboard_recent", "kboard_recent"); function kboard_recent($attr){ global $wpdb; if(!$attr['id']){ return 'KBoard 알림 :: id=null, 아이디값은 필수 입니다.' } else{ $id = $attr['id']; } $count = 5; // Default 갯수 if($attr['count'] || $attr['count']>0) { $count = $attr['count']; } $attr['count'] || $attr['count']>0 ? $count = $attr['count'] : '' $sql = "SELECT * FROM kboard_board_content WHERE board_id = '$id' order by date desc limit $count"; $result = $wpdb->get_results($sql); if($result){ $html = ""; foreach($result as $key => $val){ $titleClass = ""; if(date('Y-m-d')==date('Y-m-d', strtotime($val->date))){ $titleClass.="new "; } $html .= "".$val->title.""; $html .= "".date('Y-m-d', strtotime($val->date)).""; } $html .= ""; } return $html; }
2. 숏코드 사용하기
[kboard_recent id=게시판아이디 count=가져올글수]
예) [kboard_recent id=112 count=5]
1) count를 지정하지 않으시면 기본 5개를 불러옵니다
2) 오늘 작성된 글의 경우 new 클래스를 사용합니다
3) 해당 리스트를 멋들어지게 만들기 위해서는 css를 수정하셔야 합니다
3. 숏코드 결과
test
2013-06-03
* 버전업시 코드는 삭제됩니다. 하지만 다음버전에는 개발자분께서 만들어주신 숏코드가 들어있으리라 생각됩니다 :)
* to 개발자님 : 혹시라도 제 글이 문제가 된다면 수정/삭제 하셔도 무방합니다
KBoard 1.8 버전에 최신글 리스트 생성기능이 추가 되었습니다.^^
KBoard 발전에 힘써주시는 모든 분들게 감사의 인사 드립니다!!
흠.. 터프키드님이 주신 코드에 문제가 있었던 것이 아니라 코드입력기가 자동으로 '' 몇개를 먹어버리는 군요.
코드 입력기 안쓰고 다시 올려봅니다..
/**
* 메인페이지 최근글 리스트 숏코드
* @Author : www.plannity.kr
*/
add_shortcode("kboard_recent", "kboard_recent");
function kboard_recent($attr){
global $wpdb;
if(!$attr['id']){
return 'KBoard 알림 :: id=null, 아이디값은 필수 입니다.'
}
else{
$id = $attr['id'];
}
$count = 5; // Default 갯수
if($attr['count'] || $attr['count']>0) {
$count = $attr['count'];
}
$attr['count'] || $attr['count']>0 ? $count = $attr['count'] : ''
$sql = "SELECT * FROM kboard_board_content WHERE board_id = '$id' order by date desc limit $count;";
$result = $wpdb->get_results($sql);
if($result){
$html = "";
foreach($result as $key => $val){
$titleClass = "";
if(date('Y-m-d')==date('Y-m-d', strtotime($val->date))){
$titleClass.="new ";
}
$html .= "".$val->title."";
$html .= "".date('Y-m-d', strtotime($val->date))."";
}
$html .= "";
}
return $html;
}
봉소님, 터프키드님이 코드에 사소한 에러가 있었네요. Parsing 할 때 ; 가 없었던 것이 두세군데? 있었던 것 같아요.
아래 수정한 코드 쓰시면 될거에요. :)
코드 만들어주신 터프키드님께도 감사를...
/** * 메인페이지 최근글 리스트 숏코드 * @Author : www.plannity.kr */ add_shortcode("kboard_recent", "kboard_recent"); function kboard_recent($attr){ global $wpdb; if(!$attr['id']){ return 'KBoard 알림 :: id=null, 아이디값은 필수 입니다.' } else{ $id = $attr['id']; } $count = 5; // Default 갯수 if($attr['count'] || $attr['count']>0) { $count = $attr['count']; } $attr['count'] || $attr['count']>0 ? $count = $attr['count'] : '' $sql = "SELECT * FROM kboard_board_content WHERE board_id = '$id' order by date desc limit $count;"; $result = $wpdb->get_results($sql); if($result){ $html = ""; foreach($result as $key => $val){ $titleClass = ""; if(date('Y-m-d')==date('Y-m-d', strtotime($val->date))){ $titleClass.="new "; } $html .= "".$val->title.""; $html .= "".date('Y-m-d', strtotime($val->date)).""; } $html .= ""; } return $html; }
터프키드님 소스 제공해주셔서 감사합니다.
테스트 해본 결과 잘 출력 됩니다.
/** * 메인페이지 최근글 리스트 숏코드 * @Author : www.plannity.kr */ add_shortcode("kboard_recent", "kboard_recent"); function kboard_recent($attr){ global $wpdb; if(!$attr['id']){ return 'KBoard 알림 :: id=null, 아이디값은 필수 입니다.' } else{ $id = $attr['id']; } $count = 5; // Default 갯수 if($attr['count'] || $attr['count']>0) { $count = $attr['count']; } $attr['count'] || $attr['count']>0 ? $count = $attr['count'] : '' $sql = "SELECT * FROM kboard_board_content WHERE board_id = '$id' order by date desc limit $count"; $result = $wpdb->get_results($sql); if($result){ $html = ""; foreach($result as $key => $val){ $titleClass = ""; if(date('Y-m-d')==date('Y-m-d', strtotime($val->date))){ $titleClass.="new "; } $html .= "".$val->title.""; $html .= "".date('Y-m-d', strtotime($val->date)).""; } $html .= ""; } return $html; }
이대로 따라서 코드를 넣는데 왜 오류가 날까요 ㅠㅠ 서버가 다운되네요... 뭐가 문젤까요...
ㅠㅠ