안녕하세요
카테고리 검색시 게시물 중복 노출되는 문제가 생겨 문의 드립니다.
https://os.korea.ac.kr/publication/
카테고리에서 카테고리1 전체, 카테고리2 2015년 또는 2014년 선택하면 게시물이 중복되서 노출되는 문제가 있습니다.
카테고리2 2015년을 확인해보면,
카테고리1을 각각 선택해보면 각 9, 12, 1, 2개해서 총 24개 나옵니다.
카테고리1을 전체 선택해도 총 24개가 나오는데,
일부 게시물은 중복 노출되고 일부 게시물은 노출이 안됩니다.
(게시물 숫자는 맞게 나오는데 일부 게시물은 중복되고 일부 게시물은 노출이 안됩니다)
다른 경우도 마찬가지인거 같습니다.
(예를들어, 카테고리2, 2004년을 선택한 후 카테고리1을 전체 선택하는 경우 )
반대로 카테고리2를 전체 선택하고,
카테고리1을 하나씩 선택하는 경우에도 게시물이 중복되서 노출됩니다.
정리하면,
카테고리1, 카테고리2를 각각 선택하는 경우 중복없이 잘 검색되서 노출됩니다.
카테고리1 전체, 카테고리2 선택시 중복되서 노출됩니다.
카테고리2 전체, 카테고리1 선택시 중복되서 노출됩니다.
질문전 카테고리 중복 노출 등으로 검색했는데,
답변을 찾을 수 없어서 글을 남깁니다.
확인 부탁드립니다.
감사합니다.
안녕하세요.
보내주신 코드 적용하니 이상없이 검색이 잘 되는거 같습니다.
바쁘실텐데 DB까지 확인하고 체크해주신 점 감사드립니다.
감사합니다.
안녕하세요.
저희 고객지원 쪽 이메일로 보내주신 정보로 확인해보니
데이터베이스(DB) kboard_board_content 테이블에 저장된 게시글 중에서
몇몇 게시글의 작성일(년월일시분초)이 모두 동일한 것을 확인했습니다.
아래의 코드를 추가하시면 날짜가 같을 경우 게시글 id 내림차순으로 적용하실 수 있습니다.
add_filter('kboard_list_orderby', 'kboard_list_orderby_20200902', 10, 3);
function kboard_list_orderby_20200902($orderby, $board_id, $list){
if($board_id == '1'){ // 실제 게시판 id로 적용해주세요.
$orderby .= ", `uid` DESC";
}
return $orderby;
}
위의 코드에서 $board_id == '1' 부분은 실제 게시판 id로 적용해주세요.
테마의 functions.php 파일에 코드를 추가하거나 Code Snippets 플러그인을 사용해서 코드를 추가할 수 있습니다.
고맙습니다.
에러 메시지나 사용 중이신 테마, 플러그인과는 충돌이 없는지요?
점검 후에도 별다른 문제를 확인하지 못하셨다면
저희 고객지원 이메일로 워드프레스 관리자 계정을 보내주시면 점검해드리겠습니다.
고맙습니다.
이미지 업로드했습니다.
첫번째 게시물에 나오는 링크에서 바로 확인 가능합니다.
https://os.korea.ac.kr/publication/
카테고리에서 각각 선택할때 이상없이 잘 나옵니다.
카테고리1 또는 카테고리2 에서 전체를 선택할때만 문제가 생깁니다.
테마 functions.php 파일에 따로 추가한건 없습니다.
설치된건
테마 : Divi
플러그인 : kboard관련, really simple SSL 두가지 입니다.
감사합니다.
해당 파일에는 문제가 없는 듯합니다.
테마 쪽 functions.php 파일이나 다른 영역에
KBoard 게시글을 불러오는 코드 관련해서 추가한 게 있으신지요?
혹시 이미지 첨부가 가능하시다면
현재 문제가 되는 부분을 imgur에 업로드한 뒤 링크 걸어주시겠어요?
고맙습니다.
<div id="kboard-default-list">
<!-- 게시판 정보 시작 -->
<div class="kboard-list-header">
<?php if(!$board->isPrivate()):?>
<div class="kboard-total-count">
<?php echo __('Total', 'kboard')?> <?php echo number_format($board->getListTotal())?>
</div>
<?php endif?>
<div class="kboard-sort">
<form id="kboard-sort-form-<?php echo $board->id?>" method="get" action="<?php echo $url->toString()?>">
<?php echo $url->set('pageid', '1')->set('category1', '')->set('category2', '')->set('target', '')->set('keyword', '')->set('mod', 'list')->set('kboard_list_sort_remember', $board->id)->toInput()?>
<select name="kboard_list_sort" onchange="jQuery('#kboard-sort-form-<?php echo $board->id?>').submit();">
<option value="newest"<?php if($list->getSorting() == 'newest'):?> selected<?php endif?>><?php echo __('Newest', 'kboard')?></option>
<option value="best"<?php if($list->getSorting() == 'best'):?> selected<?php endif?>><?php echo __('Best', 'kboard')?></option>
<option value="viewed"<?php if($list->getSorting() == 'viewed'):?> selected<?php endif?>><?php echo __('Viewed', 'kboard')?></option>
<option value="updated"<?php if($list->getSorting() == 'updated'):?> selected<?php endif?>><?php echo __('Updated', 'kboard')?></option>
</select>
</form>
</div>
</div>
<!-- 게시판 정보 끝 -->
<!-- 카테고리 시작 -->
<?php
if($board->use_category == 'yes'){
if($board->isTreeCategoryActive()){
$category_type = 'tree-select';
}
else{
$category_type = 'default';
}
$category_type = apply_filters('kboard_skin_category_type', $category_type, $board, $boardBuilder);
echo $skin->load($board->skin, "list-category-{$category_type}.php", $vars);
}
?>
<!-- 카테고리 끝 -->
<!-- 리스트 시작 -->
<div class="kboard-list">
<table>
<thead>
<tr>
<td class="kboard-list-puid"><?php echo __('Number', 'kboard')?></td>
<td class="kboard-list-ptitle">논문실적명</td>
<td class="kboard-list-writer">저자</td>
<td class="kboard-list-jounal">학회 및 저널명</td>
<td class="kboard-list-pdate">일자</td>
<td class="kboard-list-link">링크</td>
</tr>
</thead>
<tbody>
<?php while($content = $list->hasNextNotice()):?>
<tr class="kboard-list-notice<?php if($content->uid == kboard_uid()):?> kboard-list-selected<?php endif?>">
<td class="kboard-list-uid"><?php echo __('Notice', 'kboard')?></td>
<td class="kboard-list-title">
<a href="<?php echo $url->getDocumentURLWithUID($content->uid)?>">
<div class="kboard-default-cut-strings">
<?php if($content->isNew()):?><span class="kboard-default-new-notify">New</span><?php endif?>
<?php if($content->secret):?><img src="<?php echo $skin_path?>/images/icon-lock.png" alt="<?php echo __('Secret', 'kboard')?>"><?php endif?>
<?php echo $content->title?>
<span class="kboard-comments-count"><?php echo $content->getCommentsCount()?></span>
</div>
</a>
<div class="kboard-mobile-contents">
<span class="contents-item kboard-user"><?php echo $content->getUserDisplay()?></span>
<span class="contents-separator kboard-date">|</span>
<span class="contents-item kboard-date"><?php echo $content->getDate()?></span>
<span class="contents-separator kboard-vote">|</span>
<span class="contents-item kboard-vote"><?php echo __('Votes', 'kboard')?> <?php echo $content->vote?></span>
<span class="contents-separator kboard-view">|</span>
<span class="contents-item kboard-view"><?php echo __('Views', 'kboard')?> <?php echo $content->view?></span>
</div>
</td>
<td class="kboard-list-writer"><?php echo $content->option->{'writer'}?></td>
<td class="kboard-list-jounal"><?php echo $content->option->{'jounal'}?></td>
<td class="kboard-list-pdate"><?php echo $content->option->{'paper_date'}?></td>
<td class="kboard-list-link"><?php echo $content->option->{'link'}?></td>
</tr>
<?php endwhile?>
<?php while($content = $list->hasNext()):?>
<tr class="kboard-list-top">
<td class="kboard-list-uid"></td>
<td class="kboard-list-title"></td>
<td class="kboard-list-pdate"></td>
<td class="kboard-list-link"></td>
</tr>
<tr class="kboard-list-first" class="<?php if($content->uid == kboard_uid()):?>kboard-list-selected<?php endif?>">
<td class="kboard-list-uid"><?php echo $list->index()?></td>
<td class="kboard-list-title">
<a href="<?php echo $url->getDocumentURLWithUID($content->uid)?>">
<div class="kboard-default-cut-strings">
<?php if($content->isNew()):?><span class="kboard-default-new-notify">New</span><?php endif?>
<?php if($content->secret):?><img src="<?php echo $skin_path?>/images/icon-lock.png" alt="<?php echo __('Secret', 'kboard')?>"><?php endif?>
<?php echo $content->title?>
<span class="kboard-comments-count"><?php echo $content->getCommentsCount()?></span>
</div>
</a>
<div class="kboard-mobile-contents">
<span class="contents-item kboard-user"><?php echo $content->getUserDisplay()?></span>
<span class="contents-separator kboard-date">|</span>
<span class="contents-item kboard-date"><?php echo $content->getDate()?></span>
<span class="contents-separator kboard-vote">|</span>
<span class="contents-item kboard-vote"><?php echo __('Votes', 'kboard')?> <?php echo $content->vote?></span>
<span class="contents-separator kboard-view">|</span>
<span class="contents-item kboard-view"><?php echo __('Views', 'kboard')?> <?php echo $content->view?></span>
</div>
</td>
<td class="kboard-list-pdate"><?php echo $content->option->{'paper_date'}?></td>
<td class="kboard-list-link"><a target="_blank" href="<?php echo $content->option->{'link'}?>">link</a></td>
</tr>
<tr>
<td class="kboard-list-leftspace"></td>
<td class="kboard-list-writer" colspan="3">ㆍ <?php echo $content->option->{'writer'}?></td>
</tr>
<tr>
<td class="kboard-list-leftspace"></td>
<td class="kboard-list-jounal" colspan="3">ㆍ <?php echo $content->option->{'jounal'}?></td>
</tr>
<tr>
<td class="kboard-list-leftspace"></td>
<td class="kboard-list-content" colspan="3"><?php echo $content->content?></td>
</tr>
<tr class="kboard-list-last"><td class="kboard-last-td" colspan="4"></td></tr>
<?php $boardBuilder->builderReply($content->uid)?>
<?php endwhile?>
</tbody>
</table>
</div>
<!-- 리스트 끝 -->
<!-- 페이징 시작 -->
<div class="kboard-pagination">
<ul class="kboard-pagination-pages">
<?php echo kboard_pagination($list->page, $list->total, $list->rpp)?>
</ul>
</div>
<!-- 페이징 끝 -->
<!-- 검색폼 시작 -->
<div class="kboard-search">
<form id="kboard-search-form-<?php echo $board->id?>" method="get" action="<?php echo $url->toString()?>">
<?php echo $url->set('pageid', '1')->set('target', '')->set('keyword', '')->set('mod', 'list')->toInput()?>
<select name="target">
<option value=""><?php echo __('All', 'kboard')?></option>
<option value="title"<?php if(kboard_target() == 'title'):?> selected<?php endif?>><?php echo __('Title', 'kboard')?></option>
<option value="content"<?php if(kboard_target() == 'content'):?> selected<?php endif?>><?php echo __('Content', 'kboard')?></option>
<option value="kboard_option_writer"<?php if(kboard_target() == 'kboard_option_writer'):?> selected<?php endif?>>저자</option>
<option value="kboard_option_jounal"<?php if(kboard_target() == 'kboard_option_jounal'):?> selected<?php endif?>>학회 및 저널명</option>
</select>
<input type="text" name="keyword" value="<?php echo esc_attr(kboard_keyword())?>">
<button type="submit" class="kboard-default-button-small"><?php echo __('Search', 'kboard')?></button>
</form>
</div>
<!-- 검색폼 끝 -->
<?php if($board->isWriter()):?>
<!-- 버튼 시작 -->
<div class="kboard-control">
<a href="<?php echo $url->getContentEditor()?>" class="kboard-default-button-small"><?php echo __('New', 'kboard')?></a>
</div>
<!-- 버튼 끝 -->
<?php endif?>
<?php if($board->contribution()):?>
<div class="kboard-default-poweredby">
<a href="https://www.cosmosfarm.com/products/kboard" onclick="window.open(this.href);return false;" title="<?php echo __('KBoard is the best community software available for WordPress', 'kboard')?>">Powered by KBoard</a>
</div>
<?php endif?>
</div>
list 수정 파일입니다.
확인 부탁드립니다.
감사합니다.
안녕하세요~^^
올려주신 내용만으로는 원인을 파악하기 어렵습니다.
KBoard 관련 코드를 추가한 게 있으시다면
에디터의 코드 스니펫 삽입 기능으로 올려주시겠어요?
워드프레스에서 에러 혹은 알 수 없는 문제가 있을 때 대응 방법을 참고하셔서
에러 메시지나 충돌이 있는지 점검해보셔야 할 듯합니다.
고맙습니다.