显示自用户上次访问以来页面上未见的评论数量

时间:2013-05-18 作者:Strasbourg

这个社区是私有的,有几个页面/wordpress/design/等等。当用户进入这些页面时,他们唯一能做的就是发表评论。

现在,我想做的是,如果可能的话,Idk,但如果是的话,我需要一些关于搜索内容的指导/提示。

http://jsfiddle.net/melbourne/uPqBe/4/

我想显示的不是标题所说的那些数字,而是自当前用户访问这些页面以来的最新评论数。

我曾想过使用本地存储/cookie,但如果用户决定从其他地方登录,那就行不通了,换句话说,我不知道该从哪里开始。

任何建议都将不胜感激。

1 个回复
最合适的回答,由SO网友:Bainternet 整理而成

例如,您可以将数据存储在用户元中,作为post id的数组->上次访问时的评论计数,然后简单地计算自该日期以来的评论数

function get_user_comment_count_since_last_visit($user_id ,$post_id){
    //only do this for logged in users
    if ($user_id <= 0 ){
        return 0;
    }

    /**
     * get last comment count for a post id from user meta if set
     * and if not set then we define zero
     */
    $user_last_visit = get_user_meta( $user_id,\'_last_visit_\',true);
    if (!isset($user_last_visit[$post_id]) || $user_last_visit[$post_id] < 0)
        $user_last_visit[$post_id] = 0;

    /**
     * get current comment count of the post
     */
    $comments_count = wp_count_comments( $post_id);

    /**
     * get the amount of added comment since last visit
     * and update the user meta for next visit
     */
    $user_last_visit[$post_id] = $comments_count->approved -  $user_last_visit[$post_id];
    update_user_meta( $user_id, \'_last_visit_\',  $user_last_visit);
    return $user_last_visit[$post_id];
}
要使用它,可以使用当前登录用户的页面id和用户id调用它。

结束