WordPress教程

WordPress 评论显示用户角色

阿里云

通过本文的方法,可以在 WordPress 每条评论显示注册用户角色标签。

代码一

自动在评论者名称后面添加代码添加到当前主题函数模板 functions.php 中:

也想出现在这里?联系我们
创客主机
  1.     if ( ! class_exists( 'ZM_Comment_Author_Role_Label' ) ) :
  2.     class ZM_Comment_Author_Role_Label {
  3.     	public function __construct() {
  4.     		add_filter( 'get_comment_author', array( $this, 'zm_get_comment_author_role' ), 10, 3 );
  5.     		add_filter( 'get_comment_author_link', array( $this, 'zm_comment_author_role' ) );
  6.     	}
  7.  
  8.     	// 获取评论角色
  9.     	function zm_get_comment_author_role( $author, $comment_id, $comment ) { 
  10.     		$authoremail = get_comment_author_email( $comment); 
  11.     		// 检查用户是否注册
  12.     		if (email_exists($authoremail)) {
  13.     			$commet_user_role = get_user_by( 'email', $authoremail );
  14.     			$comment_user_role = $commet_user_role->roles[0];
  15.     			// 输出HTML
  16.     			$this->comment_user_role = '<span class="comment-author-label comment-author-label-' . $comment_user_role . '">' . ucfirst( $comment_user_role ) . '</span>';
  17.     		} else {
  18.     			$this->comment_user_role = '';
  19.     	}
  20.     		return $author;
  21.     	}
  22.  
  23.     	// 显示评论角色
  24.     	function zm_comment_author_role( $author ) {
  25.     		return $author .= $this->comment_user_role;
  26.     	}
  27.     }
  28.     new ZM_Comment_Author_Role_Label;
  29.     endif;

之后,会在每条评论用户名称后面显示其注册角色。

代码二

自定义显示位置,代码添加到当前主题函数模板 functions.php 中

  1.     function zm_get_comment_author_role() {
  2.     	global $author, $comment_id, $comment;
  3.     	$authoremail = get_comment_author_email( $comment);
  4.     	// 检查用户是否注册
  5.     	if (email_exists($authoremail)) {
  6.     		$commet_user_role = get_user_by( 'email', $authoremail );
  7.     		$comment_user_role = $commet_user_role->roles[0];
  8.     		// 输出HTML
  9.     		$comment_user_role = '<span class="comment-author-label comment-author-label-' . $comment_user_role . '">' . ucfirst( $comment_user_role ) . '</span>';
  10.     	} else {
  11.     		$comment_user_role = '';
  12.     	}
  13.     	echo $comment_user_role;
  14.     }

在评论模板适当位置添加:

  1.     <?php zm_get_comment_author_role(); ?>

最后,添加相应的 CSS 样式。

  1.     .comment-author-label {
  2.     	padding: 5px;
  3.     	font-size: 14px;
  4.     	border-radius: 3px;
  5.     }
  6.  
  7.     .comment-author-label-editor {
  8.     	background-color: #efefef;
  9.     }
  10.  
  11.     .comment-author-label-author {
  12.     	background-color: #faeeee;
  13.     }
  14.  
  15.     .comment-author-label-contributor {
  16.     	background-color: #f0faee;
  17.     }
  18.  
  19.     .comment-author-label-subscriber {
  20.     	background-color: #eef5fa;
  21.     }
  22.  
  23.     .comment-author-label-administrator {
  24.     	background-color: #fde9ff;
  25.     }

另一段更简单的代码:

  1.     <?php
  2.     	$user_id = get_comment( get_comment_ID() )->user_id;
  3.     	if ( $user_id ){
  4.     		$user_info = get_userdata( $user_id );
  5.     		echo implode( ', ', $user_info->roles ) ;
  6.     	}
  7.     ?>

直接添加到评论模板适当位置。

WordPress 评论显示用户角色

已有 226 人购买
查看演示升级 VIP立刻购买

收藏
(0)

发表回复

热销模板

Ashade - 作品展示摄影相册WordPress汉化主题
LensNews

本站承接 WordPress / PbootCMS / DedeCMS 等
系统建站、仿站、开发、定制等业务!