水文:评论区显示“博主”标识

哎,这个标识是我自己想复杂了,之前还在网上找方法,找了一圈,还没找到合适的,然后还通过插件实现,但是也无果。

有时候真的是兜兜转转,又回来了,实际上WordPress自带主题里就有这个,开一篇记录一下方法。

第一步,将下面判断文章作者代码添加到当前主题函数模板functions.php中,functions这个文件要视主题具体情况而定,可能不是这个文件名,但一般都很容易找到。找到后,在其中加入以下代码:

// 判断文章作者
function zm_comment_by_post_author( $comment = null ) {
	if ( is_object( $comment ) && $comment->user_id > 0 ) {
		$user = get_userdata( $comment->user_id );
		$post = get_post( $comment->comment_post_ID );
		if ( ! empty( $user ) && ! empty( $post ) ) {
			return $comment->user_id === $post->post_author;
		}
	}
	return false;
}

第二步,将显示调用代码添加到主题评论模板显示评论者名称代码的后面即可。
这一步看起来很简单呀,其实也要视主题具体文件而定,一般是在主题的comment.php或comments.php文件里,加到作者函数,比如comment_author后面合适位置。但有时候主题会直接调用WordPress自带的评论文件,那么久要在WordPress跟目录下的wp-includes文件夹内,找到class-walker-comment.php文件,找到合适位置添加。具体加到哪个位置,只能自行研究了。

<?php
	$post_author = zm_comment_by_post_author( $comment );
	if ( $post_author ) {
		echo '<span class="post-author">文章作者</span>';
	}
?>

同时,也可以实现同时显示管理员和作者的调用,把第二步的代码,换成如下即可:

<?php 
	if ($comment->comment_author_email == get_option('admin_email')) {
		echo '<span class="author-admin">博主</span>';
	} else {
		$post_author = zm_comment_by_post_author( $comment );
		if ( $post_author ) {
			echo '<span class="post-author">作者</span>';
		}
	}
?>

以上代码加了之后,如果想要更美观,还要添加CSS样式,仅供参考:

span.post-author{font-size:12px;color:#fff;background-color:#515865;background-image:none;border:1px solid #1f6f93;border-radius:2px;box-shadow:none;padding:0 1px;}

14 条评论

    1. 很久不折腾了,折腾出来就很有成就感,哈哈哈 :smile:

  1. 你这功夫费的! :eek:
    WP会自动在li里加一个“bypostauthor”的class啊!!还有一个“comment-author-xinsenz”也可以用……
    然后加::before就行了,唯一要注意的是别把嵌套的li也给套用了。

    1. :razz: :cry: 我只会用笨办法,你说这些对我来说是天书,哈哈哈哈

  2. 底色不是特别醒目,换成头像的主色调,不然就无法一眼看到博主了。