在WordPress中,可以通过多种方式调用最多评论和最新评论的文章。以下是两种常见的调用方法:
一、调用最多评论的文章
1.使用WP_Query查询
<?php
// 查询评论数最多的文章
$args = array(
'posts_per_page' => 5, // 显示文章数量
'orderby' => 'comment_count', // 按评论数排序
'order' => 'DESC' // 降序排列
);
$query = new WP_Query($args);
if ($query->have_posts()) {
while ($query->have_posts()) {
$query->the_post();
?>
<div class="most-commented-post">
<h3><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h3>
<p>评论数:<?php echo get_comments_number(); ?></p>
</div>
<?php
}
wp_reset_postdata();
}
?>
解释:
orderby=>’comment_count’:按评论数排序。
order=>’DESC’:降序排列,即评论数最多的文章排在前面。
posts_per_page:设置要显示的文章数量。
2.使用get_posts函数
<?php
// 查询评论数最多的文章
$args = array(
'numberposts' => 5, // 显示文章数量
'orderby' => 'comment_count', // 按评论数排序
'order' => 'DESC' // 降序排列
);
$most_commented_posts = get_posts($args);
foreach ($most_commented_posts as $post) {
setup_postdata($post);
?>
<div class="most-commented-post">
<h3><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h3>
<p>评论数:<?php echo get_comments_number(); ?></p>
</div>
<?php
}
wp_reset_postdata();
?>
解释:
get_posts函数用于获取文章,参数与WP_Query类似。
setup_postdata用于设置全局变量$post,以便使用模板标签(如the_title、the_permalink等)。
二、调用最新评论的文章
1.使用WP_Query查询
<?php
// 查询最新评论的文章
$args = array(
'posts_per_page' => 5, // 显示文章数量
'orderby' => 'comment_date', // 按评论日期排序
'order' => 'DESC' // 降序排列
);
$query = new WP_Query($args);
if ($query->have_posts()) {
while ($query->have_posts()) {
$query->the_post();
?>
<div class="latest-commented-post">
<h3><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h3>
<p>最新评论日期:<?php echo get_the_date('Y-m-d', $post->ID); ?></p>
</div>
<?php
}
wp_reset_postdata();
}
?>
解释:
orderby=>’comment_date’:按评论日期排序。
order=>’DESC’:降序排列,即最新评论的文章排在前面。
2.使用get_comments函数
<?php
// 获取最新评论
$args = array(
'number' => 5, // 显示评论数量
'orderby' => 'comment_date', // 按评论日期排序
'order' => 'DESC' // 降序排列
);
$comments = get_comments($args);
foreach ($comments as $comment) {
$post_id = $comment->comment_post_ID;
$post = get_post($post_id);
?>
<div class="latest-commented-post">
<h3><a href="<?php echo get_permalink($post_id); ?>"><?php echo get_the_title($post_id); ?></a></h3>
<p>最新评论内容:<?php echo wp_trim_words($comment->comment_content, 20); ?></p>
</div>
<?php
}
?>
解释:
使用get_comments函数获取最新评论。
通过comment_post_ID获取评论所属的文章ID,然后使用get_post函数获取文章信息。
wp_trim_words函数用于截取评论内容,避免显示过长。
注意事项
性能优化:
如果网站文章数量较多,频繁查询评论数可能会对性能产生影响。可以考虑使用缓存插件(如WP Super Cache)或数据库缓存技术来优化性能。
样式调整:
根据主题的样式表(CSS)调整输出内容的样式,使其与网站整体风格保持一致。
插件支持:
一些WordPress插件(如Jetpack)可能提供了类似功能,可以查看插件文档以获取更便捷的实现方式。
灵活地调用WordPress中评论数最多或最新评论的文章,为网站用户提供更有价值的内容展示。
原文