WordPress 高亮显示用户上次访问后新增的评论内容

这是一个初秋的夜晚,天气晴朗,一丝风都没有,抬头仰望,湛蓝的天空中,挂着一轮金黄的圆月。月亮把它那淡淡的月光毫不吝啬地撒向洞庭湖。圆月四周,稀稀疏疏地点缀着几颗星星,那几颗星星也把微弱的光源聚集起来,撒向月光下的湖面。这下,洞庭湖真是美极了。

如果一个用户对你的文章很感兴趣,他很可能会关注你文章的评论内容,那么我们如何让用户知道哪些评论内容是他上次访问后新增的呢,今天推荐的 Comments Since Last Visit 就可以做到这一点。

Comments Since Last Visit 是通过 Cookie 记录用户最后访问每篇文章的时间,然后对这个时间后的新增评论添加一个 CSS 类 及 对应的高亮样式。这样,用户下次过来(当然是同一个浏览器,没有清空 Cookie 的情况下),就可以很明显看到新增的评论内容了。

你可以到作者博客下载该插件,或者下载本站备份

如果你不想弄插件,也可以试试倡萌根据插件源码整理出来的代码(未测试,欢迎反馈),添加到主题的 functions.php 即可:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
/**
 * WordPress 高亮显示用户上次访问后新增的评论内容
 * https://www.wpdaxue.com/comments-since-last-visit.html
 */
add_action( 'get_header', 'wpdx_last_visit_cookie' );
function wpdx_last_visit_cookie()
{
	// 只对文章和页面这类页面生效
	if ( is_singular() )
	{
		// 获取当前文章的ID
		$id = get_the_ID();
		// 获取当前时间
		$current_time = strtotime( current_time( 'mysql' ) );
		// 查看是否 cookie 已经存在,如果是,获取 last_visit
		if ( isset( $_COOKIE['last_visit'] ) )
		{
			$latest_visit = json_decode( stripslashes( $_COOKIE['last_visit'] ), true );
			// 只保留最后 50 篇文章,防止cookie过大
			if ( count( $latest_visit ) >= 50 )
			{
				$latest_visit = array_diff( $latest_visit, array( min( $latest_visit ) ) );
			}
		}
		// 只保留这篇文章的 cookie 90天
		$latest_visit[$id] = $current_time;
		setcookie( 'last_visit', json_encode( $latest_visit ), time()+3600*2160 );
	}
}
add_filter( 'comment_class', 'wpdx_last_visit_comment_class' );
function wpdx_last_visit_comment_class( $classes )
{
	// 获取评论的时间
	$comment_time = strtotime( get_comment_date( 'Y-m-d G:i:s' ) );
	if ( isset( $_COOKIE['last_visit'] ) ) {
		$latest_visit = json_decode( stripslashes( $_COOKIE['last_visit']), true );
	}
	// 如果评论是用户上次访问之后新增的,就添加 new-comment 这个类
	if ( $comment_time > $latest_visit[get_the_ID()] )
	{
		$classes[] = 'new-comment';
	}
	return $classes;
}
// 添加高亮样式
add_action( 'wp_enqueue_scripts', 'wpdx_last_visit_styles' );
function wpdx_last_visit_styles()
{
	echo '<style>.new-comment { background-color: #f0f8ff; }</style>';
}

/** * WordPress 高亮显示用户上次访问后新增的评论内容 * https://www.wpdaxue.com/comments-since-last-visit.html */ add_action( 'get_header', 'wpdx_last_visit_cookie' ); function wpdx_last_visit_cookie() { // 只对文章和页面这类页面生效 if ( is_singular() ) { // 获取当前文章的ID $id = get_the_ID(); // 获取当前时间 $current_time = strtotime( current_time( 'mysql' ) ); // 查看是否 cookie 已经存在,如果是,获取 last_visit if ( isset( $_COOKIE['last_visit'] ) ) { $latest_visit = json_decode( stripslashes( $_COOKIE['last_visit'] ), true ); // 只保留最后 50 篇文章,防止cookie过大 if ( count( $latest_visit ) >= 50 ) { $latest_visit = array_diff( $latest_visit, array( min( $latest_visit ) ) ); } } // 只保留这篇文章的 cookie 90天 $latest_visit[$id] = $current_time; setcookie( 'last_visit', json_encode( $latest_visit ), time()+3600*2160 ); } } add_filter( 'comment_class', 'wpdx_last_visit_comment_class' ); function wpdx_last_visit_comment_class( $classes ) { // 获取评论的时间 $comment_time = strtotime( get_comment_date( 'Y-m-d G:i:s' ) ); if ( isset( $_COOKIE['last_visit'] ) ) { $latest_visit = json_decode( stripslashes( $_COOKIE['last_visit']), true ); } // 如果评论是用户上次访问之后新增的,就添加 new-comment 这个类 if ( $comment_time > $latest_visit[get_the_ID()] ) { $classes[] = 'new-comment'; } return $classes; } // 添加高亮样式 add_action( 'wp_enqueue_scripts', 'wpdx_last_visit_styles' ); function wpdx_last_visit_styles() { echo '<style>.new-comment { background-color: #f0f8ff; }</style>'; }

以上就是WordPress 高亮显示用户上次访问后新增的评论内容。生活的真谛在于创新,生活的理想在于远大,生活的艺术在于选择,生活的步履在于踏实,生活的乐趣在于追求,生活的安乐在于平淡,人生有时就是一场戏,有高潮,有低谷,每个人在这场戏中的角色是不同的,有的人是主角,有的人是配角,并不是主角就一定有好戏,配角也有出彩的时候,与人相处,追求和谐,就如水一样,无形却能演变五彩缤纷,无味却能演绎万味俱佳。更多关于WordPress 高亮显示用户上次访问后新增的评论内容请关注haodaima.com其它相关文章!

您可能有感兴趣的文章
WordPress站点Gravatar头像前后台不显示的如何解决办法

WordPress主题需要支持https吗?WordPress站点如何如何实现https?

WordPress站点的页面/标签/分类URL地址如何添加.html?

WordPress站点更换了域名后数据库应该如何操作替换新旧域名?

WordPress安装在主机空间的什么目录里面?根目录在哪里?