안녕하세요.
코스모스팜 무제한 라이센스 구매후 적용 작업중입니다.
메인에 동영상 게시판 썸네일을 구축했는데,
작업해주시는 분이 KBoard의 최신글 모아보기 생성으로 만든게 아니라
db에서 뽑아오는걸로 KBoard 코드 작업을 해주셨는데, front-page.php 소스보면
kboard_board_content WHERE board_id >= 11 order by uid desc limit ";
이렇게 되어있는데,
아래 방법대로 functions.php 에서
add_filter('kboard_list_where', 'today_best_kboard_list_where', 10, 3);
function today_best_kboard_list_where($where, $board_id, $content_list){
if($board_id == '11'){ // 실제 적용될 게시판의 ID값으로 변경해주세
요.
$date = date('Ymd000000', current_time('timestamp')); //
오늘 0시 기준
$where = "`date`>='{$ate}' AND `parent_uid`='0' AND
`notice`='' AND (`status`='' OR `status` IS NULL OR
`status`='pending_approval')";
}
return $where;
}
add_filter('kboard_list_orderby', 'today_best_kboard_list_orderby', 10,
3);
function today_best_kboard_list_orderby($orderby, $board_id,
$content_list){
if($board_id == '11'){ // 실제 적용될 게시판의 ID값으로 변경해주세
요.
$orderby = "(`view`+`vote`) DESC, `date` DESC"; // 조회수
와 추천수를 더한 값을 기준으로 정렬
}
return $orderby;
}
이 부분 추가해주면 구현될까요?
안녕하세요~^^
KBoard 게시판, KBoard 최신글 모아보기, KBoard 최신글 기능이 아닌
별도로 코드를 추가하신 거라면 KBoard 플러그인의 액션과 필터가 적용되지 않습니다.
필터를 사용할 수 없는 상황이라면
아래의 코드를 활용해보시겠어요?
global $wpdb;
$board_id = '1'; // 실제 적용될 게시판의 ID값으로 변경해주세요.
$date = date('Ymd000000', current_time('timestamp')); //오늘 0시 기준
$results = $wpdb->get_results("SELECT `{$wpdb->prefix}kboard_board_content`.`uid` FROM `{$wpdb->prefix}kboard_board_content` WHERE `board_id`='{$board_id}' AND `date`>='{$date}' AND `parent_uid`='0' AND `notice`='' AND (`status`='' OR `status` IS NULL OR `status`='pending_approval') ORDER BY (`view`+`vote`) DESC, `date` DESC LIMIT 0,10");
위의 코드에서 $board_id = '1' 부분은 실제 게시판 id로 적용해보세요.
고맙습니다.
감사합니다^^ 위 기능을 functions.php 에 추가하면 될까요, 아니면 front-page.php 에 추가하면 될까요?
해당 코드는 front-page.php 파일에
데이터베이스 쿼리문 쪽에 활용해주셔야 할 듯합니다.
고맙습니다.
감사합니다^^
감사합니다~ 2018.12.31 11:34 에 알려주신 위 코드를 활용해서 1일마다 갱신해서 가져오는게 아니라 6시간마다 갱신해서 최신글 모아보기에 적용할수 있을까요?
안녕하세요.
오늘 등록된 게시글이 아닌 현재 시간으로부터 6시간 전까지 등록된 게시글을 표시하시려는 지요?
기존 아래의 코드 대신
$date = date('Ymd000000', current_time('timestamp')); //오늘 0시 기준
아래의 코드로 교체해서 적용해보시겠어요?
$date = date('YmdHis', strtotime('-6 hour', current_time('timestamp'))); // 6시간 전
고맙습니다.
6시간마다 추출하는건 front-page가 아니라 https://xion.kr/?page_id=226 서브페이지에 안에 숏코드로 만든 탭메뉴 안에 최신글 모아보기 소스 삽입한 곳에 구현하려고 하는데('요즘 뜨는'이라는 탭메뉴에) 이때는 이 코드를 어디에 넣어줘야 할까요?
안녕하세요.
숏코드를 만드신 후에 해당 탭 내용 쪽에 숏코드를 추가해주셔야 할 듯합니다.
플레이 비디오 스킨을 기준으로 예제 숏코드를 작성해봤습니다.
워드프레스 관리자 -> 외모(테마 디자인) -> 테마 편집기 페이지에서 functions.php 파일 하단에
아래의 코드를 추가해보세요.
add_shortcode('kboard_board_six_hours_list', 'kboard_board_six_hours_list');
function kboard_board_six_hours_list(){
global $wpdb;
$board_id = '1'; // 실제 적용될 게시판의 ID값으로 변경해주세요.
$date = date('YmdHis', strtotime('-6 hour', current_time('timestamp'))); // 6시간 전
$router = new KBRouter();
$router->process();
$board_url = $router->getBoardURL($board_id);
$url = new KBUrl();
$list = new KBContentList($board_id);
$list->setDateRange($date, '');
$list->getList();
$html = '';
ob_start();
?>
<div id="kboard-play-video-latest">
<ul class="kboard-list">
<?php while($content = $list->hasNext()):?>
<li class="kboard-list-item<?php if($content->uid == kboard_uid()):?> kboard-selected<?php endif?>">
<a href="<?php echo $url->set('uid', $content->uid)->set('mod', 'document')->toStringWithPath($board_url)?>#kboard-document">
<?php if($content->getThumbnail(330, 160)):?>
<div class="kboard-list-thumbnail" style="background-image:url(<?php echo $content->getThumbnail(330, 160)?>)"></div>
<?php elseif($content->option->youtube_id):?>
<div class="kboard-list-thumbnail" style="background-image:url(<?php echo $content->option->youtube_thumbnail_url?>)"></div>
<?php elseif($content->option->vimeo_id):?>
<div class="kboard-list-thumbnail" style="background-image:url(<?php echo $content->option->vimeo_thumbnail_url?>)"></div>
<?php else:?>
<div class="kboard-list-thumbnail"></div>
<?php endif?>
<div class="kboard-list-title kboard-ell">
<?php echo $content->title?>
<?php echo $content->getCommentsCount()?>
</div>
<div class="kboard-video-info">
<span><?php echo get_avatar($content->member_uid, 16, '', $content->member_display, array('class'=>'kboard-avatar'))?> <?php echo $content->member_display?></span>
<div class="kboard-ell">
<span><?php echo __('Views', 'kboard')?> <?php echo number_format(intval($content->view))?></span>
<span>·</span>
<span><?php echo date('Y-m-d', strtotime($content->date))?></span>
</div>
</div>
<div class="kboard-selected-background">
<div class="kboard-selected-wrap">
<div class="kboard-selected-table">
<div class="kboard-selected-cell">
<?php echo __('Play', 'kboard')?>
</div>
</div>
</div>
</div>
</a>
</li>
<?php endwhile?>
</ul>
</div>
<?php
$html = ob_get_clean();
return $html;
}
탭 메뉴 쪽에 아래의 숏코드를 추가해보시겠어요?
[kboard_board_six_hours_list]
고맙습니다.