카테고리 선택 검색시 게시물 중복 노출 문제

안녕하세요

 

카테고리 검색시 게시물 중복 노출되는 문제가 생겨 문의 드립니다.

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 선택시 중복되서 노출됩니다.

 

질문전 카테고리 중복 노출 등으로 검색했는데,

답변을 찾을 수 없어서 글을 남깁니다.

 

확인 부탁드립니다.

 

감사합니다.

 

 

좋은 정보와 인맥을 동시에, 워드프레스 사용자 단톡방 참여하기
좋은 정보와 인맥을 동시에, 워드프레스 사용자 단톡방 참여하기
  • 안녕하세요~^^

    올려주신 내용만으로는 원인을 파악하기 어렵습니다.

    KBoard 관련 코드를 추가한 게 있으시다면

    에디터의 코드 스니펫 삽입 기능으로 올려주시겠어요?

     

    워드프레스에서 에러 혹은 알 수 없는 문제가 있을 때 대응 방법을 참고하셔서

    에러 메시지나 충돌이 있는지 점검해보셔야 할 듯합니다.

    고맙습니다.

  • <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 수정 파일입니다.

    확인 부탁드립니다.

     

    감사합니다.

     

     

     

  • 해당 파일에는 문제가 없는 듯합니다.

    테마 쪽 functions.php 파일이나 다른 영역에

    KBoard 게시글을 불러오는 코드 관련해서 추가한 게 있으신지요?

    혹시 이미지 첨부가 가능하시다면

    현재 문제가 되는 부분을 imgur에 업로드한 뒤 링크 걸어주시겠어요?

    고맙습니다.

  • https://imgur.com/a/Renlg7O

    이미지 업로드했습니다.

     

    첫번째 게시물에 나오는 링크에서 바로 확인 가능합니다.

    https://os.korea.ac.kr/publication/

     

    카테고리에서 각각 선택할때 이상없이 잘 나옵니다.

    카테고리1 또는 카테고리2 에서 전체를 선택할때만 문제가 생깁니다.

     

    테마 functions.php 파일에 따로 추가한건 없습니다.

     

    설치된건

    테마 : Divi

    플러그인 : kboard관련, really simple SSL 두가지 입니다.

     

    감사합니다.

     

  • 에러 메시지나 사용 중이신 테마, 플러그인과는 충돌이 없는지요?

    점검 후에도 별다른 문제를 확인하지 못하셨다면

    저희 고객지원 이메일로 워드프레스 관리자 계정을 보내주시면 점검해드리겠습니다.

    고맙습니다.

  • 안녕하세요.

    저희 고객지원 쪽 이메일로 보내주신 정보로 확인해보니

    데이터베이스(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 플러그인을 사용해서 코드를 추가할 수 있습니다.

    고맙습니다.

  • 안녕하세요.

    보내주신 코드 적용하니 이상없이 검색이 잘 되는거 같습니다.

    바쁘실텐데 DB까지 확인하고 체크해주신 점 감사드립니다.

     

    감사합니다.

     

     

     

워드프레스 에러 기술지원 서비스 전문가에게 맡기세요