안녕하세요.
현재 홈페이지의 한 페이지 안에 '게시판 검색'버튼을 만들어서 게시판을 검색할 수 있게 하고
그 밑에 '최근 뜨는 게시판' 메뉴를 만들려고 합니다.
현재 최신 글 모아보기는 조회수 많은 글을 게시판마다 불러올수 있게 되어있는데
혹시 제가 만들려는 '최근 뜨는 게시판' 메뉴에서는
조회수 많은 글이 아니라 조회수 많은 게시판 이름이 나오게
수정할 수 있을까요?
저희가 KBoard 게시판을 자동설치로 설치해야 정상적으로 동작한다고 말씀드린 것은
자동설치한 게시판만 표시되는 뜻은 아닙니다.
자동설치로 게시판을 설치하지 않으면
어느 페이지에 게시판이 설치되어 있는지 알 수없기 때문에
특정 게시판을 클릭했을 때 실제 해당 게시판이 설치된 페이지로 이동할 수 없습니다.
특정 게시판을 제외하시려면
추가하신 코드 중 아래의 코드를 찾아서
$best_board_list = $wpdb->get_results("SELECT `board_id`, SUM(`view`) as `sum`, `date` FROM `{$wpdb->prefix}kboard_board_content` WHERE `date` BETWEEN '{$start_date}' AND '{$end_date}' GROUP BY `board_id` HAVING `date` BETWEEN '{$start_date}' AND '{$end_date}' ORDER BY `sum` DESC LIMIT 0, 10");
아래의 코드로 교체해보세요.
$best_board_list = $wpdb->get_results("SELECT `board_id`, SUM(`view`) as `sum`, `date` FROM `wp_kboard_board_content` WHERE `date` BETWEEN '20190220000000' AND '20190226235959' AND `board_id` NOT IN('1') GROUP BY `board_id` HAVING `date` BETWEEN '20190220000000' AND '20190226235959' ORDER BY `sum` DESC LIMIT 0, 10");
위의 코드에서 `board_id` NOT IN('1') 부분은 게시판 id로 적용해보세요.
여러 개의 게시판을 제외하시려면 `board_id` NOT IN('1', '2', '3', '4') 이런 식으로 적용해보세요.
고맙습니다.
안녕하세요... 위 코드들 적용해서 https://xion.kr/?page_id=53 테스트하고 있는데 자동설치한 게시판만 랭킹에 올라온다고 하셨는데 동영상 게시판은 자동설치 해제했는데 어제 계속 올리고 조회했더니 랭킹에 포함되서요... 자동저장안한 게시판은 철저히 막거나 제가 지정한 카페만 랭킹에 포함되게 하는 방법이 있을까요?
코드의 순서가 잘못된 듯합니다.
올려주신 코드 중에서 아래의 코드를
$start_date = date("Ymd000000", strtotime("-1 week", current_time('timestamp')));
$end_date = date("Ymd235959", strtotime("-1 day", current_time('timestamp')));
아래의 코드 위에 추가해보시겠어요?
$best_board_list = $wpdb->get_results("SELECT `board_id`, SUM(`view`) as `sum`, `date` FROM `{$wpdb->prefix}kboard_board_content` WHERE `date` BETWEEN '{$start_date}' AND '{$end_date}' GROUP BY `board_id` HAVING `date` BETWEEN '{$start_date}' AND '{$end_date}' ORDER BY `sum` DESC LIMIT 0, 10");
고맙습니다.
// 총 게시글 조회수가 가장 많은 게시판을 표시하기
add_shortcode('kboard_board_best_view', 'kboard_board_best_view');
function kboard_board_best_view(){
global $wpdb;
$html = '';
$best_board_list = $wpdb->get_results("SELECT `board_id`, SUM(`view`) as `sum`, `date` FROM `{$wpdb->prefix}kboard_board_content` WHERE `date` BETWEEN '{$start_date}' AND '{$end_date}' GROUP BY `board_id` HAVING `date` BETWEEN '{$start_date}' AND '{$end_date}' ORDER BY `sum` DESC LIMIT 0, 10");
$start_date = date("Ymd000000", strtotime("-1 week", current_time('timestamp')));
$end_date = date("Ymd235959", strtotime("-1 day", current_time('timestamp')));
ob_start();
?>
<?php foreach($best_board_list as $board):?>
<?php $best_board = new KBoard($board->board_id)?>
<div class="kboard-best-view">
<?php if($best_board->meta->auto_page):?>
<a href="/?page_id=<?php echo $best_board->meta->auto_page?>">
<span class="kboard-best-view-board-name"><?php echo $best_board->board_name?></span>
<span class="kboard-best-view-count">조회수 <?php echo $board->sum?></span>
</a>
<?php else:?>
<span class="kboard-best-view-board-name"><?php echo $best_board->board_name?></span>
<span class="kboard-best-view-count">조회수 <?php echo $board->sum?></span>
<?php endif?>
</div>
<?php endforeach?>
<?php
$html = ob_get_clean();
return $html;
}
감사합니다...
마지막 알려주신 대로 functions.php에 적용했는데 게시판 조회수를 늘려도 http://xion.kr/?page_id=53 여기에 게시판 목록이 하나도 안 떠서요. 코드 중에 잘못된 부분있는지 한번 봐주시겠어요?
네, 맞습니다.
4주를 기준으로 하시려면 이전 댓글에 안내해드린 코드 중
-1 week 부분을 -4 week로 적용해주시면 됩니다.
strtotime 함수에 대한 자세한 내용은 아래의 링크를 참고해보시겠어요?
http://php.net/manual/en/function.strtotime.php
고맙습니다.
감사합니다^^ 만약 4주 단위로 하려면 알려주신 $start_date = date("Ymd000000", strtotime("-1 week", current_time('timestamp'))); 코드에서 -1 week 를 -4 week 로 수정하면 될까요?
안녕하세요.
코드를 올리는 과정에서 착오가 있었습니다.
수정하신 코드 위에 아래의 코드도 추가해보시겠어요?
$start_date = date("Ymd000000", strtotime("-1 week", current_time('timestamp')));
$end_date = date("Ymd235959", strtotime("-1 day", current_time('timestamp')));
고맙습니다.
감사합니다. 어제 코드 삽입하고 게시판 조회수 클릭해봤는데 오늘 조회수 누른 게시판 목록이 "최근 뜨는 게시판" 탭메뉴에 뜨지 않아서요... http://xion.kr/?page_id=53 혹시 위 코드 알려주신거에 start-date하고 end-date에 날짜 제가 입력해줘야 되나요?
안녕하세요.
SQL Select 절에 조건을 추가하면 가능할 듯합니다.
추가하신 코드 중 아래의 코드를 찾아서
$best_board_list = $wpdb->get_results("SELECT `board_id`, SUM(`view`) as `sum` FROM `wp_kboard_board_content` GROUP BY `board_id` ORDER BY `sum` DESC LIMIT 0, 5");
아래의 코드로 교체해보시겠어요?
$best_board_list = $wpdb->get_results("SELECT `board_id`, SUM(`view`) as `sum`, `date` FROM `{$wpdb->prefix}kboard_board_content` WHERE `date` BETWEEN '{$start_date}' AND '{$end_date}' GROUP BY `board_id` HAVING `date` BETWEEN '{$start_date}' AND '{$end_date}' ORDER BY `sum` DESC LIMIT 0, 5");
고맙습니다.
항상 감사드립니다. 위 알려주신 기능에 시간 개념도 추가할 수 있을까요?
예를 들어서 지난 1주일간의 조회수가 반영되게요.
2월 11일~17일까지의 조회수가 18일에 보이고, 2월 12일~18일까지가 19일에 보이는 식으로요.
안녕하세요.
게시판 제목 색상을 바꾸고 오른쪽에 조회수도 표시하시려면
기존의 코드 대신 아래의 코드로 교체해보세요.
add_shortcode('kboard_board_best_view', 'kboard_board_best_view');
function kboard_board_best_view(){
global $wpdb;
$html = '';
$best_board_list = $wpdb->get_results("SELECT `board_id`, SUM(`view`) as `sum` FROM `wp_kboard_board_content` GROUP BY `board_id` ORDER BY `sum` DESC LIMIT 0, 5");
ob_start();
?>
<?php foreach($best_board_list as $board):?>
<?php $best_board = new KBoard($board->board_id)?>
<div class="kboard-best-view">
<?php if($best_board->meta->auto_page):?>
<a href="/?page_id=<?php echo $best_board->meta->auto_page?>">
<span class="kboard-best-view-board-name"><?php echo $best_board->board_name?></span>
<span class="kboard-best-view-count">조회수 <?php echo $board->sum?></span>
</a>
<?php else:?>
<span class="kboard-best-view-board-name"><?php echo $best_board->board_name?></span>
<span class="kboard-best-view-count">조회수 <?php echo $board->sum?></span>
<?php endif?>
</div>
<?php endforeach?>
<?php
$html = ob_get_clean();
return $html;
}
워드프레스 관리자 -> 외모(테마 디자인) -> 사용자 정의하기 -> CSS 입력 필드에
아래의 코드를 추가해보시겠어요?
.kboard-best-view .kboard-best-view-board-name { color: black; }
.kboard-best-view .kboard-best-view-count { color: black; }
위의 코드에서 색상은 적절히 수정해주세요.
고맙습니다.
감사합니다.
http://xion.kr/?page_id=53 에 잘 적용했습니다.
그런데 게시판 목록 색깔이 안 보여서 아래와 같이 해봤는데 적용이 안되서요.
틀린 부분 알려주시겠어요?
#kboard_board_best_view .POST-CONTENT .hentry .entry-content a:visited { color: #07e2ed }
그리고, 게시판 이름만 나오는데 오른쪽에 조회숫자도 나오게 할 수 있을까요?
안녕하세요.
게시판 목록이 표시되고 있는지요?
게시판 id는 별도로 입력하지 않으셔도 됩니다.
이전 댓글에 안내해드린 코드를 적용하시면
KBoard 게시판에서 전체 게시글의 조회수를 더해서
더한 값이 가장 큰 게시판을 순서대로 표시할 수 있습니다.
고맙습니다.
감사합니다~ 위 알려주신대로 kboard 게시판 목록 들어가서 게시판 자동설치에서 '페이지'들을 선택해주었는데 조회순대로 게시판 이름이 안 나타나서요.. 맨처음 알려주신 코드에서 조회순 자료 뽑아올 게시판 아이디들을 입력해주어야 하나요? ^^;;
안녕하세요.
이전 댓글에 안내해드린 코드는 최신글 모아보기 기능과는 다른 코드입니다.
해당 페이지에서 최신글 모아보기 숏코드 대신
아래의 숏코드를 추가해보시겠어요?
[kboard_board_best_view]
고맙습니다.
안녕하세요~ http://xion.kr/?page_id=53 에 위 기능 구현하고 있는데, 최신글 모아보기 생성해서 게시판들을 지정해줬는데, 최신글 제목들이 나오고 있어서요. 현 페이지에 불러올려면 어떤 구문을 써줘야 할까요? 감사합니다...
감사합니다~ 새해 복 많이 받으세요^^
안녕하세요~^^
KBoard 플러그인에서 총 게시글 조회수가 가장 많은 게시판을 순서대로 표시하시려면
워드프레스 관리자 -> 외모 -> 테마 편집기 페이지에서 functions.php 파일 하단에
아래의 코드를 추가해보시겠어요?
add_shortcode('kboard_board_best_view', 'kboard_board_best_view');
function kboard_board_best_view(){
global $wpdb;
$html = '';
$best_board_list = $wpdb->get_results("SELECT `board_id`, SUM(`view`) as `sum` FROM `wp_kboard_board_content` GROUP BY `board_id` ORDER BY `sum` DESC LIMIT 0, 5");
ob_start();
?>
<?php foreach($best_board_list as $board):?>
<?php $best_board = new KBoard($board->board_id)?>
<div>
<?php if($best_board->meta->auto_page):?>
<a href="/?page_id=<?php echo $best_board->meta->auto_page?>"><?php echo $best_board->board_name?></a>
<?php else:?>
<?php echo $best_board->board_name?>
<?php endif?>
</div>
<?php endforeach?>
<?php
$html = ob_get_clean();
return $html;
}
위의 코드에서 LIMIT 0, 5 부분을 LIMIT 0, 10 으로 수정하시면
기존 5개만 표시하던 목록을 10개의 목록을 표시합니다.
위의 코드에서 게시판 링크는 KBoard 게시판을 자동설치로 설치해주셔야 정상적으로 동작합니다.
워드프레스 관리자 -> KBoard -> 게시판 목록 -> 게시판 선택 -> 기본설정 페이지에서
게시판 자동설치에 페이지를 선택해주시면 됩니다.
고맙습니다.