В начало блога На главную

Все комментарии на одной странице WordPress

Для вывода всех комментариев на одной странице можно воспользоваться функцией WP_Comment_Query либо достать их сразу из базы данных. Эстетично показывать комментарии с одобренным статусом status=approve. Так же количество можно ограничить используя number=10. Если на блоге разрешены пинг и трекбеки, то можно и их исключить.

Пример использования функции WP_Comment_Query:

$comments_query = new WP_Comment_Query;
$comments = $comments_query->query( 'status=approve&number=10' );
if ( $comments ) {
foreach ( $comments as $comment ) { ?>

comment_author . ": " . $comment->comment_content; ?>



А далее пример выгрузки комментариев из mysql:
comments c INNER JOIN $wpdb->posts p ON (c.comment_post_id = p.ID) ";
$sql .= "WHERE comment_approved = '1' ";
$sql .= "AND comment_type not in ('trackback', 'pingback') ";
$sql .= "AND p.post_status != 'trash' ";
$sql .= "ORDER BY comment_date DESC";
if ('-1' != $max)
$sql .= " LIMIT 0, $max";
$results = $wpdb->get_results($sql);
$templates = "\t" . '

%gravatar% %authorname% в посте %posttitle%
%commentcontent%

' . "\n";
foreach ($results as $row) {
$tags = array(
'%commentdate%', '%gravatar%', '%posttitle%',
'%posturl%', '%authorurl%', '%authorname%',
'%commentid%', '%commentcontent%'
);
$replacements = array(
$row->comment_date, get_avatar($row->comment_author_email, '30'), $row->post_title,
get_permalink($row->comment_post_ID), $row->comment_author_url, $row->comment_author,
$row->comment_ID, $row->comment_content
);
$result .= str_replace($tags, $replacements, $templates);
}
if ($result)
$result = '

' . "\n" . $result . '

' . "\n";
// output
echo $result;
?>

Рассказать: