WordPress 最新评论与您的足迹二体合一

之前写过一篇《最新、热评、随机日志函数三体合一》的文章,就是把 WordPress 中最新文章、热评文章、随机文章这三个功能不同但函数相近的函数合并在一起写,然后通过不同的参数调用实现这三个功能。这样做的优点是可以精简冗长、多余、重复的代码,方便今后维护和管理,可以做到以一敌三的,个人认为这是一个很好的思路,值得拓展一下。

我先自我拓展一下,把 WordPress 最新评论和“您的足迹”功能进行合体,因为在介绍《WordPress 实现“您的足迹”功能》一文中我就提到过“您的足迹”的原理其实和最新评论是相对的,方法也是相近的,那何不把这两者也合并在一起呢?方法如下:

在 WordPress 主题文件中的 functions.php 中添加代码如下:

function recent_comments( $commentauthor='' ){
    global $wpdb;
    $sql = "SELECT DISTINCT ID, post_title, post_password, comment_ID, comment_post_ID, comment_author, comment_date_gmt, comment_approved,comment_author_email, comment_type,comment_author_url, SUBSTRING(comment_content,1,25) AS com_excerpt FROM $wpdb->comments LEFT OUTER JOIN $wpdb->posts ON ($wpdb->comments.comment_post_ID = $wpdb->posts.ID) WHERE comment_approved = '1' AND comment_type = '' AND comment_author $commentauthor AND post_password = '' ORDER BY comment_date_gmt DESC LIMIT 10";
    $comments = $wpdb->get_results($sql);
    foreach ( $comments as $comment ) {
        $output .= "\n<li><a href=\"" . get_permalink($comment->ID) . "#comment-" . $comment->comment_ID . "\" title=\"" . $comment->post_title . " 上的评论\">". strip_tags($comment->comment_author) .": ". strip_tags($comment->com_excerpt) ."</a></li>";
    }
    echo $output;
}

接下去是分别调用最新评论和“您的足迹”的代码,先来看看最新评论:

<?php recent_comments( '!="万戈"' );?>

这里的参数意思就是排除管理员自己的评论,当然,这里的万戈要改成你自己的昵称咯。接下来再看看如何调用“您的足迹”:

<?php
if($_COOKIE["comment_author_" . COOKIEHASH]!=""){
    echo '<div class="widget"><h3>您的足迹</h3><ul>';
    recent_comments( '="'.$_COOKIE["comment_author_" . COOKIEHASH].'"' );
    echo '</ul></div>';
}
?>

这里调用的参数就是先判断来访者有没有评论过的 Cookies,如果有则显示您的足迹。

这也只是一个思路的举例,还有更多值得举一反三的,把一些常用的类似的函数合并,这将大大有效地提高对代码的管理,不知道你还有什么更好的想法和思路没?

  1. 就跟你的最近评论一样的,应该怎么弄呢?我的最近评论的头像,有时候是正常的,有时候头像会全部显示我自己的新浪围脖头像,我囧了

  2. 兄弟,这篇文章可以解决我的无难题,上次那片足迹,在我那边就是2合一了,用了这个,就不用2合1了。呵呵。

  3. 你的足迹这个功能我一直加不上,就因为我放代码上去,就自动是而两个都显示了,最新的和和你的足迹,郁闷啊~ 所以今天试试你这个,看看能否不要合一。

      • 没出来是因为我没升级,用的2.9,后来出来了,但是是在下载别人的模板上出来了,我自己的做的模板没出来(即使我用你的样式)

  4. 万戈是不是啥时候又换RSS地址了,还奇怪你咋这么久没更新了,打开链接一看,有更新啊,那为啥我GR订阅了你博客4个RSS地址现在都不提示了 :eek:

  5. 最近增加多了技术文哈。。
    想把你的文章转到我的建站百科,会加上链接的,不知道可否?
    ---------------
    看来我是乖孩子,连转文章时候都要问一次,唉..