안녕하세요~^^
인기글은 조회수 수선대로 출력되고 있습니다.
고맙습니다.
안녕하세요..
혹시 위젯에. 추천순 , 인기순, 옆에... (1주간의) 댓글 많은 순서로 볼수있는 "댓글순" 탭을 하나 더 생성 할 수 있을까요?
토론이 활발한 글을 추려 보는것이 의미가 있어보여서요..
감사합니다.
안녕하세요.
KBoard 위젯에서 댓글순 탭을 추가하고 1주간의 댓글 많은 순서로 표시하시려면
워드프레스 관리자 -> 외모 -> 테마 편집기 페이지에서 functions.php 파일 하단에
아래의 코드를 추가해보시겠어요?
add_filter('kboard_widget_tab_list', 'my_kboard_widget_tab_list', 10, 1);
function my_kboard_widget_tab_list($tab_list){
$tab_list[] = '댓글순';
return $tab_list;
}
add_filter('kboard_widget_list_where', 'my_kboard_widget_list_where', 10, 5);
function my_kboard_widget_list_where($where, $value, $limit, $exclude, $with_notice){
global $wpdb;
if($value == '댓글순'){
$where .= " AND `date` >= date_add(now(), interval -1 week)";
}
return $where;
}
add_filter('kboard_widget_list_orderby', 'my_kboard_widget_list_orderby', 10, 5);
function my_kboard_widget_list_orderby($orderby, $value, $limit, $exclude, $with_notice){
if($value == '댓글순'){
$orderby = "`comment` DESC";
}
return $orderby;
}
고맙습니다.
댓글순 으로 하는 코드를 적용해보니 잘됩니다.
그런데. 제가 최근 여쭤보고 답을 얻은 "추천글과 인기글의 기간을 1주일로 설정" 하는 코드를 같이 사용하면 ,에러( HTTP ERROR 500 ) 가 발생합합니다. 따로 따로 는 두개의 도움말씀 (코드)가 잘 되는데. 같이쓸때 충돌 하는 걸까요??
아래는 최근 알려주신 위젯 추천글 인기글 의 기간 1주설정 코드입니다.
add_filter('kboard_widget_list_where', 'my_kboard_widget_list_where', 10, 5);
function my_kboard_widget_list_where($where, $value, $limit, $exclude, $with_notice){
// 추천글
if($value == 'vote'){
$where .= " AND `date` >= date_add(now(), interval -1 week)";
}
// 인기글
if($value == 'view'){
$where .= " AND `date` >= date_add(now(), interval -1 week)";
}
return $where;
}
안녕하세요.
워드프레스 필터는 여러 개 사용할 수 있지만
PHP 함수명이 중복된다면 문제가 생길 수 있습니다.
이전 댓글에 안내해드린 코드 중 아래의 코드를
add_filter('kboard_widget_list_where', 'my_kboard_widget_list_where', 10, 5);
function my_kboard_widget_list_where($where, $value, $limit, $exclude, $with_notice){
global $wpdb;
if($value == '댓글순'){
$where .= " AND `date` >= date_add(now(), interval -1 week)";
}
return $where;
}
아래의 코드로 교체해보시겠어요?
add_filter('kboard_widget_list_where', 'my_kboard_widget_list_where', 10, 5);
function my_kboard_widget_list_where($where, $value, $limit, $exclude, $with_notice){
global $wpdb;
if($value == '댓글순'){
$where .= " AND `date` >= date_add(now(), interval -1 week)";
}
// 추천글
if($value == 'vote'){
$where .= " AND `date` >= date_add(now(), interval -1 week)";
}
// 인기글
if($value == 'view'){
$where .= " AND `date` >= date_add(now(), interval -1 week)";
}
return $where;
}
또는 위의 코드 대신 아래의 코드처럼
함수명이 겹치지 않게 코드를 작성해주시면 됩니다.
add_filter('kboard_widget_list_where', 'my_kboard_widget_list_where1', 10, 5);
function my_kboard_widget_list_where1($where, $value, $limit, $exclude, $with_notice){
global $wpdb;
if($value == '댓글순'){
$where .= " AND `date` >= date_add(now(), interval -1 week)";
}
return $where;
}
기존 코드와 비교해보면 my_kboard_widget_list_where 함수명이
my_kboard_widget_list_where1 이런 식으로 교체된 것을 확인하실 수 있습니다.
고맙습니다.
확인해봤습니다. 잘됩니다! 감사합니다.