-
2007/08/11 10:06 오후 #2814
http://urbangiraffe.com/plugins/separate-comment-pings/
이 플러그인을 사용하시면 될 듯 합니다.
단, 이 플러그인은 테마의 comments.php 템플릿 내에서만 사용가능합니다.
기본적으로 필터를 이용해서 pignback, trackback 을 $pings 로 분리하기 때문에 테마를 수정하지 않고 플러그인만 적용하면 일반 comment 만을 출력하며, 갯수도 일반 comment의 갯수만을 출력하게 됩니다.
따라서 나머지 pingback, trackback을 따로 출력하려면 comments.php를 수정해 주어야만 합니다.
간단하게 예를 들어보겠습니다 ::
<?php global $pings; if( $pings && count($pings) > 0 ) :
$numPings = count($pings);
?>
<!-- pingback, trackback 갯수 표시 -->
<h3 id="pingbacks"><?php echo ( $numPings == 1 ? 'One Responses' : $numPings . ' Responses' );?></h3><ol class="commentlist">
<?php foreach ($pings as $comment) : ?><!-- $comment 이어야 제대로 작동됩니다. --><li>......댓글 표시내용...(테마에서 기본 표시되는 내용을 그대로 옮기면 됩니다..)</li>
<?php endforeach; /* end for each comment */ ?>
</ol>
<?php endif; ?>위 내용을 참고하여 사용중인 테마의 comments.php의 적당한 부분에 넣어주시면 됩니다.
어디까지나 간단하게 예를 든 것 이므로, 사용중인 테마에 맞게 수정하셔야 합니다.
2007/08/11 10:06 오후 #2818http://urbangiraffe.com/plugins/separate-comment-pings/
이 플러그인을 사용하시면 될 듯 합니다.
단, 이 플러그인은 테마의 comments.php 템플릿 내에서만 사용가능합니다.
기본적으로 필터를 이용해서 pignback, trackback 을 $pings 로 분리하기 때문에 테마를 수정하지 않고 플러그인만 적용하면 일반 comment 만을 출력하며, 갯수도 일반 comment의 갯수만을 출력하게 됩니다.
따라서 나머지 pingback, trackback을 따로 출력하려면 comments.php를 수정해 주어야만 합니다.
간단하게 예를 들어보겠습니다 ::
<?php global $pings; if( $pings && count($pings) > 0 ) :
$numPings = count($pings);
?>
<!-- pingback, trackback 갯수 표시 -->
<h3 id="pingbacks"><?php echo ( $numPings == 1 ? 'One Responses' : $numPings . ' Responses' );?></h3><ol class="commentlist">
<?php foreach ($pings as $comment) : ?><!-- $comment 이어야 제대로 작동됩니다. --><li>......댓글 표시내용...(테마에서 기본 표시되는 내용을 그대로 옮기면 됩니다..)</li>
<?php endforeach; /* end for each comment */ ?>
</ol>
<?php endif; ?>위 내용을 참고하여 사용중인 테마의 comments.php의 적당한 부분에 넣어주시면 됩니다.
어디까지나 간단하게 예를 든 것 이므로, 사용중인 테마에 맞게 수정하셔야 합니다.
2007/08/13 1:19 오후 #2815우선 친절한 답변에 감사드립니다. 근데 제가 설명이 부족했었나 봅니다.
다만 제가 원했던건 단지 comment 화면뿐 아니라 index 나 single 과 같은 여타 화면에서 코멘트수와 트랙백수를 따로 분리해서 카운팅한 걸 표시해주는 거였는데요…082님의 답변처럼 comment 화면내에서 분리하는 건 다른 테마의 comment.php 에서 내용을 확인할 수 있었네요. 굳이 플러그인을 사용하지 않아도 표시가 가능한 것 같던데…자세한 내용은 천천히 익혀야할 듯 싶구요.
아무튼…상기의 내용처럼 main index 화면에서 코멘트 수와 트랙백 수를 분리해서 표시할 수는 없는지요?2007/08/13 1:19 오후 #2819우선 친절한 답변에 감사드립니다. 근데 제가 설명이 부족했었나 봅니다.
다만 제가 원했던건 단지 comment 화면뿐 아니라 index 나 single 과 같은 여타 화면에서 코멘트수와 트랙백수를 따로 분리해서 카운팅한 걸 표시해주는 거였는데요…082님의 답변처럼 comment 화면내에서 분리하는 건 다른 테마의 comment.php 에서 내용을 확인할 수 있었네요. 굳이 플러그인을 사용하지 않아도 표시가 가능한 것 같던데…자세한 내용은 천천히 익혀야할 듯 싶구요.
아무튼…상기의 내용처럼 main index 화면에서 코멘트 수와 트랙백 수를 분리해서 표시할 수는 없는지요?2007/08/14 11:25 오후 #2816말씀 하신 내용은 플러그인 등으로 쉽게 적용 할 수 없습니다.
테마의 루프내에서 $comment를 직접 MySQL큐리를 통해 얻어와서 그 숫자를 표시하는 방법밖에는 없을 듯 하군요.
예는 index.php로 하겠습니다.
<?php while (have_posts()) : the_post(); ?>
를 찾아 바로 아래에 아래의 예를 참고해서 코드를 넣으세요.
<?php
$count_query = "SELECT COUNT(*) AS count FROM $wpdb->comments WHERE comment_post_ID = '$post->ID' ";
if($user_ID) {
$count_query .= " AND (comment_approved = '1' OR ( user_id = '$user_ID' AND comment_approved = '0' ) ) ";
} else if (empty($comment_author) ) {
$count_query .= " AND omment_approved = '1' ";
} else {
$author_db = $wpdb->escape($comment_author);
$email_db = $wpdb->escape($comment_author_email);
$count_query .= " AND ( comment_approved = '1' OR ( comment_author = '$author_db' AND comment_author_email = '$email_db' AND comment_approved = '0' ) ) ";
}
$comment_count = (int)$wpdb->get_var($count_query . " AND comment_type = '' ");
$ping_count = (int)$wpdb->get_var($count_query . " AND comment_type <> '' ");
echo 'comments: '. $comment_count . ' pings: '.$ping_count;
?>2007/08/14 11:25 오후 #2820말씀 하신 내용은 플러그인 등으로 쉽게 적용 할 수 없습니다.
테마의 루프내에서 $comment를 직접 MySQL큐리를 통해 얻어와서 그 숫자를 표시하는 방법밖에는 없을 듯 하군요.
예는 index.php로 하겠습니다.
<?php while (have_posts()) : the_post(); ?>
를 찾아 바로 아래에 아래의 예를 참고해서 코드를 넣으세요.
<?php
$count_query = "SELECT COUNT(*) AS count FROM $wpdb->comments WHERE comment_post_ID = '$post->ID' ";
if($user_ID) {
$count_query .= " AND (comment_approved = '1' OR ( user_id = '$user_ID' AND comment_approved = '0' ) ) ";
} else if (empty($comment_author) ) {
$count_query .= " AND omment_approved = '1' ";
} else {
$author_db = $wpdb->escape($comment_author);
$email_db = $wpdb->escape($comment_author_email);
$count_query .= " AND ( comment_approved = '1' OR ( comment_author = '$author_db' AND comment_author_email = '$email_db' AND comment_approved = '0' ) ) ";
}
$comment_count = (int)$wpdb->get_var($count_query . " AND comment_type = '' ");
$ping_count = (int)$wpdb->get_var($count_query . " AND comment_type <> '' ");
echo 'comments: '. $comment_count . ' pings: '.$ping_count;
?> -
AuthorPosts
- 답변은 로그인 후 가능합니다.