최신글 모아보기 카테고리별 링크 이동

1. 정확한 제품 또는 플러그인 이름

- 케이보드 최신글 모아보기 (skin : default)
- 게시판 (skin : default, ocean-gallery)

 

2. 상세 내용

최신글 모아보기를 사용하여 총 3개의 게시판을 모아보기를 하여 사용중입니다.
(공지사항 = default / 언론보도 & 이벤트 = 오션갤러리)
그 중 [news > 언론보도] 게시판에서는 게시물 클릭시 원하는 사이트로 링크 연동을 할 수 있도록 수정하였습니다.
(참고한 링크 : https://www.cosmosfarm.com/threads/document/32081)

 

하지만 최신글 모아보기에서는 모든 게시판의 링크가 게시물 상세보기페이지로 링크가 걸려있어서 카테고리가 [news > 언론보도]만 다른 링크로 지정하고 싶습니다.
(사용스킨 : default)

 

현재 다른 2개의 카테고리는 기존 링크를 유지하여 게시글 상세보기페이지로 이동하고,

[news > 언론보도] 카테고리의 게시물만 하단 코드의 링크 이동을 하려면 어떻게 해야하는걸까요?

<?php echo $content->option->url?>



3. 확인 가능한 상세 페이지 주소

 

 

4. 수정한 코드 내역 (있다면)

[오션갤러리 editor.php 코드추가]

<div class="kboard-attr-row newsLink">
	<label class="attr-name" for="kboard_option_url">news link <span class="attr-required-text">*</span></label>
	<div class="attr-value"><input type="text" id="kboard_option_url" name="kboard_option_url" value="<?php echo $content->option->url?>"></div>
</div>

 

[function.php 추가]

add_filter('kboard_url_document_uid', 'my_kboard_url_document_uid', 10, 3);
function my_kboard_url_document_uid($url, $content_uid, $board){
	if($board->id == '2'){
		$content = new KBContent();
		$content->initWithUID($content_uid);
		if($content->option->url){
			$url = $content->option->url;
		}
	}
	
	return $url;
}

 

워드프레스 에러 기술지원 서비스 전문가에게 맡기세요
워드프레스 에러 기술지원 서비스 전문가에게 맡기세요
  • 안녕하세요~^^

    최신글 모아보기 스킨이 default를 사용하는 경우를 기준으로 안내드립니다.

     

    latest.php 파일에서 아래의 코드를 찾아

    <a href="<?php echo $url->getDocumentURLWithUID($content->uid)?>">

    아래의 코드처럼 변경해주세요.

    <a href="<?php echo isset($content->option->url) && $content->option->url ? $content->option->url : $url->getDocumentURLWithUID($content->uid)?>">

     

    다만, latest 파일을 변경 시 모아보기가 아닌 일반 최신글 숏코드에도 반영되니 다른 곳에서 같이 사용하고 계신 경우 default-2 와 같이 스킨을 복사하여 사용하시는 것을 권장드립니다.

    고맙습니다.

  • 안녕하세요. 답변감사합니다.

    01.
    안내해주신 최신글 숏코드를 변경하였습니다.
    약간의 custom을하여 tr에 onclick속성을 사용하였습니다.

    그러나 여전히 언론보도 페이지의 링크가 삽입된 뉴스링크가 아닌 상세페이지로 이동이됩니다.

    //케이보드 숏코드 id값 및 사용스킨
    [news > 공지사항] [kboard id=1] default
    [news > 언론보도] [kboard id=2] ocean-gallery '해당뉴스로_새창이동'
    [news > 이벤트] [kboard id=3] ocean-gallery
    [최신글 모아보기] [kboard_latestview id="1"] default 스킨

    ↓default leatest.php 수정코드↓

    <div id="kboard-default-latest">
    	<table>
    		<thead>
    			<tr>
    				<th class="kboard-latest-title"><?php echo __('Title', 'kboard')?></th>
    				<th class="kboard-latest-date"><?php echo __('Date', 'kboard')?></th>
    			</tr>
    		</thead>
    		<tbody>
    			<?php while($content = $list->hasNext()):?>
    			<tr onclick="location.href='<?php echo isset($content->option->url) && $content->option->url ? $content->option->url : $url->getDocumentURLWithUID($content->uid)?>'" style="cursor:pointer">
    				<td class="kboard-latest-title">
    					<div class="kboard-default-cut-strings">
    						<?php if($content->isNew()):?><span class="kboard-default-new-notify">N</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>
    				</td>
    				<td class="kboard-latest-content">
    					<div class="kboard-default-cut-strings">
    						<?php echo wp_trim_words(strip_tags($content->content), 200, '...')?>
    					</div>
    				</td>
    				<td class="kboard-latest-more-btn">
    					<div class="more_btn_icon"></div>
    				</td>
    				<td class="kboard-latest-category">NEWS > <?php echo $content->getBoard()->board_name?></td>
    				<td class="kboard-latest-date"><?php echo $content->getDate()?></td>
    			</tr>
    			<?php endwhile?>
    		</tbody>
    	</table>
    </div>

     

  • 안내드린 코드는 url 필드에 값이 있는 경우 url을 표시하도록 하는 코드입니다.

    <?php echo $content->option->url?>

    와 같이 실제로 url 옵션에 값이 들어있는지 확인해보시겠어요?

     

    또 카테고리1번 언론보도일 때 뭔가 동작하시려면

    아래 예제 코드를 참고하여 입력해주시면 되겠습니다.

    <?php if($content->category1 == '언론보도'):?> //내용 입력 <?php endif?>

    고맙습니다.

좋은 정보와 인맥을 동시에, 워드프레스 사용자 단톡방 참여하기