WordPress显示最新评论的文章列表

WordPress, 转自点点 9 年前 回复

, , ,

1、方法一;
看代码:

<?php
/**
 * 名称:WordPress显示最近评论的文章列表
 * 作者:露兜
 * 博客:https://www.ludou.org/
 * 最后修改:2010年12月06日
 */

$pop = $wpdb->get_results("SELECT DISTINCT comment_post_ID
FROM $wpdb->comments
WHERE comment_approved = 1
AND comment_post_ID NOT IN
(
SELECT ID FROM $wpdb->posts
WHERE post_type != 'post'
OR post_status != 'publish'
OR post_password != ''
)
ORDER BY comment_date_gmt DESC
LIMIT 10"); ?>
<ul>
<?php foreach($pop as $post) : ?>
<li><a href="<?php echo get_permalink($post->comment_post_ID); ?>"><?php echo get_the_title($post->comment_post_ID); ?></a></li>
<?php endforeach; ?>
</ul>

将以上代码放到主题文件的sidebar.php、single.php等文件的适当位置,即可实现相应的效果。以上代码将最多列出10篇文章,如果你想显示更多的文章那就将代码第20行中10改一下。以上PHP代码生成的HTML代码为一个无序列表

<ul>… </ul>

,使用过程注意与你的主题吻合。

以上转自:http://www.ludou.org/wordpress-post-list-orderby-comment-time.html

2、方法二;
我自己通过修改别人的代码也有一种方法,是谁的给忘了,效果见本站。
把下面代码扔到functions.php里:

/* 最新回复 */
function new_comment_posts($no_posts = 10, $before = '<li>', $after = '</li>', $show_pass_post = false, $duration='') {
global $wpdb;
$request = "SELECT ID, post_title, COUNT($wpdb->comments.comment_post_ID) AS 'comment_count' FROM $wpdb->posts, $wpdb->comments";
$request .= " WHERE comment_approved = '1' AND $wpdb->posts.ID=$wpdb->comments.comment_post_ID AND post_status = 'publish'";
if(!$show_pass_post) $request .= " AND post_password =''";
if($duration !="") { $request .= " AND DATE_SUB(CURDATE(),INTERVAL ".$duration." DAY) < post_date ";
}
$request .= " GROUP BY $wpdb->comments.comment_post_ID ORDER BY comment_date_gmt DESC LIMIT $no_posts";
$posts = $wpdb->get_results($request);
$output = '';
if ($posts) {
foreach ($posts as $post) {
$post_title = wp_trim_words(stripslashes($post->post_title),18);
$post_tt = stripslashes($post->post_title);
$comment_count = $post->comment_count;
$permalink = get_permalink($post->ID);
$output .= $before . '<a href="' . $permalink . '" title="' . $post_tt.'">' . $post_title . '</a> <span class="list_comm">+' . $comment_count.'</span> ' . $after;
}
} else {
$output .= $before . "None found" . $after;
}
echo $output;
}

在其他文件里适当调用代码:

<?php new_comment_posts(); ?>
支付宝打赏微信打赏

如果此文对你有帮助,欢迎打赏作者。

发表评论

欢迎回来 (打开)

(必填)

9747