포스트마다 다른 게시물 출력

회원 소개 페이지를 만들려고 합니다.
한명의 회원이 포스트 형태에 자신을 소개하는 글을 쓰면
그 하단에 그 포스트를 작성한 작성자가 쓴 게시판 게시물을 출력하고 싶습니다.

예를 들어,
A라는 회원이 자신을 소개하는 포스트를 남겼다면
그 하단에 A라는 회원이 남긴 케이보드에 있는 게시물 리스트( 하나의 게시판)를
보여주고 싶습니다.

이 기능이 케이보드에서 가능할까요?

아니면 혹시 이 기능이 가능한 플러그인이 있을까요?
좋은 정보와 인맥을 동시에, 워드프레스 사용자 단톡방 참여하기
좋은 정보와 인맥을 동시에, 워드프레스 사용자 단톡방 참여하기
  • 안녕하세요~^^

    the_content 필터를 활용하면 워드프레스 포스트 내용을 수정할 수 있습니다.

    포스트 내용 밑에 포스트 작성자가 쓴 KBoard 게시글을 표시하시려면

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

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

    add_filter('the_content', 'yourprefix_add_to_content');
    function yourprefix_add_to_content($content){
    	if(is_single()){
    		$user_id = get_the_author_meta('ID');
    		$content .= do_shortcode('[kboard_my_content_list id='.$user_id.']');
    	}
    	return $content;
    }
    
    add_shortcode('kboard_my_content_list', 'kboard_my_content_list');
    function kboard_my_content_list($attr){
    	global $wpdb;
    	
    	$user_id = (isset($attr['id'])&&$attr['id']) ? $attr['id'] : '';
    		
    	$html = '';
    	
    	if($user_id){
    		$url = new KBUrl();
    		$results = $wpdb->get_results("SELECT `uid` FROM {$wpdb->prefix}kboard_board_content WHERE `member_uid`='{$user_id}' AND (`status`='' OR `status` IS NULL OR `status`='pending_approval') ORDER BY `date` DESC");
    		
    		ob_start();
    		foreach($results as $item){
    			$content = new KBContent();
    			$content->initWithUID($item->uid);
    			?>
    			<div class="my_kboard_content">
    				<a href="<?php echo $url->getDocumentRedirect($content->uid)?>">
    					<?php echo $content->title?>
    				</a>
    			</div>
    			<?php
    		}
    		$html = ob_get_clean();
    	}
    	
    	return $html;
    }

    레이아웃을 원하시는 대로 수정하시려면 HTML과 CSS 코드에 대해

    어느 정도 알고 계셔야 할 듯합니다.

    고맙습니다.

  • 특정 게시판 설정은 어떻게 해야할까요?

     

    예를 들어 아래 URL 보시면 게시판에 포스트 작성자(admin)가 아닌 다른 작성자에 글도 함께 표시됩니다.

    <URL 삭제>

  • 안녕하세요.

    올려주신 페이지 주소로 확인해보니

    이전 댓글에 안내해드린 코드가 아닌

    kboard_list_where 필터를 활용해보셔야 할 듯합니다.

     

    기존의 코드 대신 아래의 코드를 활용해보시겠어요?

    add_filter('kboard_list_where', 'my_kboard_list_where', 10, 3);
    function my_kboard_list_where($where, $board_id, $content_list){
    	if($board_id == '1'){ // 실제 게시판 id로 적용해주세요.
    		$user_id = get_the_author_meta('ID');
    		$where .= " AND `member_uid`='{$user_id}'";
    	}
    	return $where;
    }

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

    위의 코드가 정상적으로 동작하지 않는다면 해당 포스트 작성자의 id(숫자)를 가져올 수 있는지 확인해보시고

    get_the_author_meta('ID') 부분을 수정해보시겠어요?

    고맙습니다.

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