K보드 게시글 작성자 이전 게시글 목록 추가 방법

안녕하세요.

아래 이미지 처럼, 작성자의 이전 게시글/댓글 목록을 현재 게시글 하단에 표시하는 좋은 방법이 있을까요?

https://www.cosmosfarm.com/threads/document/29991

https://m.blog.naver.com/PostView.nhn?blogId=chan2rrj&logNo=221032820645&proxyReferer=https:%2F%2Fwww.google.com%2F

위 두 링크를 참고해서 게시판 스킨을 수정하거나 위젯 숏코드를 추가해주면 어느정도 해결 할 수 있을 듯 한데요....

혹시라도 속도나 여러가지를 고려했을 때 가장 적절한 방법이 있을지 개발자님께 여쭙고자 문의드립니다. :)

항상 친절한 답변 감사드립니다.

좋은 정보와 인맥을 동시에, 워드프레스 사용자 단톡방 참여하기
좋은 정보와 인맥을 동시에, 워드프레스 사용자 단톡방 참여하기
  • 답변 감사드립니다.

    두번째 위젯 코드를 일부 수정하여 직접 K보드 하단에 직접 추가하는 방법으로 해결했습니다.

    <?php
    
    <!-- 사용자 정보 표시 -->
    		<div class="author-info-area">
    			<div class="author-info">
    			<?php 
    			$user_id = $content->getUserID();
    			$user = get_userdata( $user_id );
    			?>
    			<div class="user-avatar"> <?php echo get_avatar($user_id); ?> </div> <div class="user-textarea"> 
    			<?php
    			$rank = mycred_get_users_rank( $user_id );
    			if ( is_object( $rank ) ) {
    				if ( $rank->has_logo )
    					echo '<div class="rank"><span class="rank-logo">' . $rank->get_image( 'logo' ) . '</span><span class="user-name">' . $user->display_name . '</span></div>' ;
    			}
    			?> <div class="rank-title">회원등급 : <?php echo $rank->title; ?> </div>
    			<div class="user-balance">포인트 : <?php echo mycred_get_users_balance($user_id) ?> EP</div>
    			</div>
    			</div>
    			<div class="author-previous-list">
    			<!-- 위젯 메뉴 시작 -->
    			<div class="tabs">
    				<div class="tab-links">
    					<div class="active"><a href="#tab1">게시글</a></div>
    					<div><a href="#tab2">댓글</a></div>
    				</div>
    				<div class="tab-content">
    					<?php  
    
    					global $wpdb;
    					
    					$limit = 5;
    				
    					$where = array();
    					
    					// 사용자 ID
    					$where[] = "`member_uid`='{$user_id}'";
    					
    					// 휴지통에 없는 게시글만 불러온다.
    					$where[] = "(`status`='' OR `status` IS NULL OR `status`='pending_approval')";
    					
    					$where = implode(' AND ', $where);
    					$results = $wpdb->get_results("SELECT `uid` FROM `{$wpdb->prefix}kboard_board_content` WHERE {$where} ORDER BY `date` DESC LIMIT {$limit}");
    					
    					if(!$results){
    						echo '<div id="tab1" class="tab active"><p>작성한 게시글이 없습니다.</p></div>';
    					}
    					else{
    						$url = new KBUrl();
    						
    						echo '<div id="tab1" class="tab active"><ul>';
    						
    						foreach($results as $row){
    							echo '<li>';
    							
    							$tempcontent = new KBContent();
    							$tempcontent->initWithUID($row->uid);
    							
    							echo '<div class="author-post-title"><a href="'.$url->getDocumentRedirect($tempcontent->uid).'" title="이동">'. $tempcontent->title . ' ' .$tempcontent->getCommentsCount() . '</a></div><div class="author-post-date">' . $tempcontent->getDate() . '</div>';
    							
    							echo '</li>';
    						}
    						
    						echo '</ul></div>';
    					}
    					
    					// 사용자 ID
    					
    					$where2[] = "`user_uid`='{$user_id}'";
    					
    					$where2 = implode(' AND ', $where2);
    					$results2 = $wpdb->get_results("SELECT `uid` FROM `{$wpdb->prefix}kboard_comments` WHERE {$where2} ORDER BY `created` DESC LIMIT {$limit}");
    					
    					if(!$results2){
    						echo '<div id="tab2" class="tab"><p>작성한 댓글이 없습니다.</p></div>';
    					}
    					else{
    						$url = new KBUrl();
    						
    						echo '<div id="tab2" class="tab"><ul>';
    						
    						foreach($results2 as $row){
    							echo '<li>';
    							
    							$comment = new KBComment();
    							$comment->initWithUID($row->uid);
    							
    							echo '<div class="author-post-title"><a href="'.$url->getDocumentRedirect($comment->content_uid).'" title="이동">'. strip_tags($comment->content) .'</a></div><div class="author-post-date">' . date('Y.m.d', strtotime($comment->created)) . '</div>';
    							
    							echo '</li>';
    						}
    						
    						echo '</ul></div>';
    					}
    					?>
    				</div>
    			</div>
    			</div>
    		</div>
    

    탭은 j쿼리를 사용하여 해결했습니다.

    jQuery(document).ready(function() {
    	jQuery('.tabs .tab-links a').on('click', function(e) {
    		var currentAttrValue = jQuery(this).attr('href');
    
    		// Show/Hide Tabs
    		jQuery('.tabs ' + currentAttrValue).show().siblings().hide();
    
    		// Change/remove current tab to active
    		jQuery(this).parent('div').addClass('active').siblings().removeClass('active');
    
    		e.preventDefault();
    	});
    });

    감사합니다.

  • 안녕하세요~^^

    두 링크의 코드는 조금 다릅니다.

    첫 번째 링크는 숏코드 형태로 페이지, 위젯 등에 원하는 영역에 추가해서 사용할 수 있습니다.

    두 번째 링크는 위젯 형태로 사이드바 등의 위젯 영역에 추가해서 사용할 수 있습니다.

    별도의 플러그인을 설치하면 위젯도 숏코드 형태로 변환할 수는 있습니다.

     

    속도는 두 링크가 체감할 만큼 차이가 나진 않을 듯합니다.

    그래도 최소한의 코드로 적용하고 싶으시다면

    첫 번째 링크처럼 숏코드만 만들어서 사용하시는 게 유리할 듯합니다.

    고맙습니다.

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