WordPress回复评论自动添加@评论者

发布于2016-12-01 | 6344 阅读 | 1 喜欢 | php wordpress

其实之前我也看到很多博客有这样的功能,但是一直不太喜欢,因为露兜博客使用了嵌套评论,可以很容易分辨各评论的关系,所以没有使用此功能。但是我是在后台审核并回复评论的,之前有好几次因为没注意评论信息栏的:回复给***,还以为是给我的留言,所以给人家回复了一些莫名其妙的内容,闹出过不少笑话。因为这个原因,前不久我给露兜博客添加了这么功能,回复某位评论者的留言时,在留言前面加个 @评论者,这样可以更好地分辨是给谁回复。也许网上已经有相关的教程,但是这里也分享一下我的实现方法,在当前主题functions.php中添加以下代码:

// 评论添加@,by Ludou
function ludou_comment_add_at( $commentdata ) {
  if ( $commentdata['comment_parent'] > 0)  {
    $commentdata['comment_content'] = '@'.get_comment_author( $commentdata['comment_parent'] ) . ' ' . $commentdata['comment_content'];
  }

  return $commentdata;
}
add_action( 'preprocess_comment' , 'ludou_comment_add_at', 20); 

以上代码会直接将 @ 信息写入数据库。如果你不想将 @评论者 写入数据库,可以使用下面的代码:

// 评论添加@,by Ludou
function ludou_comment_add_at( $comment_text, $comment = '') {
  if ( $comment->comment_parent > 0) {
    $comment_text = '@'.get_comment_author( $comment->comment_parent ) . ' ' . $comment_text;
  }

  return $comment_text;
}
add_filter( 'comment_text' , 'ludou_comment_add_at', 20, 2);