안녕하세요.
아래 이미지 처럼, 작성자의 이전 게시글/댓글 목록을 현재 게시글 하단에 표시하는 좋은 방법이 있을까요?
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();
});
});
감사합니다.