최근 게시글 내용 미리보기 할 수 있나요?

숏코드를 이용해서 최근글 리스트 미리보기 말고

워드프레스에서 블로그 같은 경우는 최근 블로그 글을 메인화면에서 미리보기 보여주기가 가능한데요.

아래의 공지사항 부분처럼 보여지는게 케이보드에서 작성된 글도 가능할까요?

소식 공지 문답
  • 최근글1
  • 최근글2
  • 최근글3
  • 최근글4
  • 최근글5

공지사항입니다.

이번에 새롭게 시작하는 내용에 대해서
공지합니다. 모두 잘 참고하여주시기
바랍니다.

더보기>

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

    간단하게 숏코드를 이용한 예제를 만들어 봤습니다.

    워드프레스 관리자 -> 외모 -> 테마 편집기 페이지에서 functions.php 파일 하단에

    아래의 코드를 적절히 활용해보시겠어요?

    add_shortcode('my_kboard_latest_content_view', 'my_kboard_latest_content_view');
    function my_kboard_latest_content_view($args=array()){
    	global $wpdb;
    	$board_id = '1'; 
    	$result = $wpdb->get_row("SELECT * FROM `{$wpdb->prefix}kboard_board_content` WHERE `board_id`='$board_id' AND (`status`='' OR `status` IS NULL OR `status`='pending_approval') ORDER BY `date` DESC LIMIT 1");
    	ob_start();
    	echo '<div class="kboard-title"><a href="게시판이 설치된 주소">'.$result->title.'</a></div>';
    	echo '<div class="kboard-content">'.$result->content.'</div>'; 	
    	return ob_get_clean();
    }

    위 코드에서 $board_id = '1'; 부분을 실제 게시판의 id로 적용해보세요.

    레이아웃도 적절히 수정해보시겠어요?

    아래의 숏코드를 위젯이나 출력하실 부분에 추가해주시면 됩니다.

    [my_kboard_latest_content_view]

    고맙습니다.

  • 답변 감사합니다.

    알려주신대로 적용하니 최근글 내용 전체가 보여지는데요. 그러면 메인화면 레이아웃이 깨져서 보기가 않좋은데요...
    글의 일부만 보여지게 하고 싶을때는 어떻게 해야 될까요?

    해당 주소는 여기 입니다.

  • PHP의 mb_strimwidth 함수를 사용해보세요~

    아래 처럼 적용하시면됩니다.

    add_shortcode('my_kboard_latest_content_view', 'my_kboard_latest_content_view');
    function my_kboard_latest_content_view($args=array()){
    	global $wpdb;
    	$board_id = '1'; 
    	$result = $wpdb->get_row("SELECT * FROM `{$wpdb->prefix}kboard_board_content` WHERE `board_id`='$board_id' AND (`status`='' OR `status` IS NULL OR `status`='pending_approval') ORDER BY `date` DESC LIMIT 1");
    	$content = wp_strip_all_tags($result->content);
    	$content = mb_strimwidth($content, 0, 100, '...', 'utf-8'); // 100 수치를 조절하시면 길이를 조절할 수 있습니다.
    	ob_start();
    	echo '<div class="kboard-title"><a href="게시판이 설치된 주소">'.$result->title.'</a></div>';
    	echo '<div class="kboard-content">'.$content.'</div>'; 	
    	return ob_get_clean();
    }

     

    mb_strimwidth 함수의 자세한 설명은 아래 링크를 참고해주세요.

    http://php.net/manual/kr/function.mb-strimwidth.php

    고맙습니다.

  • 늘 친절한 답변에 진심으로 감사드립니다.

  • 스레드봇님께서 알려주신 덕분에 유용하게 사용중인데요. 

    1. 최근 게시글 내용 미리보기에서 '제목'을 클릭하면 해당글이 펼쳐지면 좋을것 같은데요. 
    현재는 게시판 목록이 나타납니다.

    해결할 방법이 있을까요?

    2. 그리고 제목 글씨를 크게 하려면 어디를 수정해야 하는지요...?

    주소는 여기입니다.

  • 안녕하세요~^^

    1. 아래의 코드를 적용해보시겠어요?

    add_shortcode('my_kboard_latest_content_view', 'my_kboard_latest_content_view');
    function my_kboard_latest_content_view($args=array()){
    	global $wpdb;
    	$board_id = '1';
    	$result = $wpdb->get_row("SELECT * FROM `{$wpdb->prefix}kboard_board_content` WHERE `board_id`='$board_id' AND (`status`='' OR `status` IS NULL OR `status`='pending_approval') ORDER BY `date` DESC LIMIT 1");
    	$content = wp_strip_all_tags($result->content);
    	ob_start();
    	echo '<div class="kboard-title"><a href="#" onclick="kboard_content_more(); return false;">'.$result->title.'</a></div>';
    	echo '<div class="kboard-content"><div class="kboard-shortcode-cut-strings">'.wpautop($content).'</div></div>';
    	echo '<div class="kboard-content-fold" onclick="kboard_content_fold(this)">접기</div>';
    	?>
    	<script>
    	function kboard_content_more(){
    		jQuery('.kboard-shortcode-cut-strings').css('height', '100%');
    		jQuery('.kboard-content-fold').show();
    	}
    
    	function kboard_content_fold(element){
    		jQuery('.kboard-shortcode-cut-strings').css('height', '120px');
    		jQuery('.kboard-content-fold').hide();
    	}
    	</script>
    	<?php
    	return ob_get_clean();
    }

    워드프레스 관리자 -> 외모 -> 사용자 정의하기 -> CSS 입력 필드에

    아래의 코드도 추가해주세요.

    .kboard-shortcode-cut-strings { height: 120px; overflow: hidden; text-overflow: ellipsis; word-wrap: normal; white-space: normal; }
    .kboard-content-fold { display: none; cursor: pointer; }

    위 코드에서 height: 120px; 부분에서 숫자는 사이트에 맞게 적절히 수정해보세요.

     

    2. 워드프레스 관리자 -> 외모 -> 사용자 정의하기 -> CSS 입력 필드에

    아래의 코드를 추가해보시겠어요?

    .kboard-title { font-size: 25px; }

    위 코드에서 숫자는 적절히 수정해보세요.

    고맙습니다.

  • 스레드봇님 수고해주셨는데 너무 죄송하지만...

    제가 원한건 메인화면에서 글내용이 펼쳐지는 것이 아니라 제목을 누르면 해당 글 내용 페이지로 바로 '이동'하는 것이었습니다.

    다시 한번만 도움을 주실 수 있을까요...?

  • 안녕하세요.

    아래의 코드를 적용해보시겠어요?

    add_shortcode('my_kboard_latest_content_view', 'my_kboard_latest_content_view');
    function my_kboard_latest_content_view($args=array()){
    	global $wpdb;
    	$board_id = '1';
    	$result = $wpdb->get_row("SELECT * FROM `{$wpdb->prefix}kboard_board_content` WHERE `board_id`='$board_id' AND (`status`='' OR `status` IS NULL OR `status`='pending_approval') ORDER BY `date` DESC LIMIT 1");
    	$content = wp_strip_all_tags($result->content);
    	$content = mb_strimwidth($content, 0, 100, '...', 'utf-8'); // 100 수치를 조절하시면 길이를 조절할 수 있습니다.
    	$url = new KBUrl();
    	$router = new KBRouter();
    	$board_url = $router->getContentURL($result->uid);
    	
    	ob_start();
    	echo '<div class="kboard-title"><a href="'.$url->set('uid', $result->uid)->set('mod', 'document')->toStringWithPath($board_url).'">'.$result->title.'</a></div>';
    	echo '<div class="kboard-content">'.$content.'</div>';
    	return ob_get_clean();
    }

    고맙습니다.

  • 완벽히 해결되었습니다.

    감사합니다!!!

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