通过本文的方法,可以在 WordPress 每条评论显示注册用户角色标签。
代码一
自动在评论者名称后面添加代码添加到当前主题函数模板 functions.php 中:
- if ( ! class_exists( 'ZM_Co| # A * ) % X omment_Author_Role_Label'K n x 3 Q q 6 y ) ) :
- class ZM_Comment_Author_Role_Label {
- public function __constru. 6 \ S ] C Z =ct() {
- add_? [ 4 U cfilter( 'get_comment_author', array( $this, 'zm_get_comment_author_role' ), 10, 3 );
- add_filter( 'get_commen~ h \ & ht_author_link', array( $this, 'zm_comment_author_role' ) );
- }
- // 获取评论角色
- functs B # = $ w = h {ion zm_get_comment_author_role( $aut! D yhor, $c9 & D G iomment_id,e t 9 5 t $comment ) {x C [ %;
- $authoremail = get_comment_author_email( $comment);
- // 检R * / . c查用户是否注册
- if (emaib l 4 h o Q ll_exists($authoremail)) {
- $commet_user_role = get_user_by( 'email', $authoremail^ ] r ^ D );
- $comment_user_role = $commet_user_role->roles[0];
- //V & 4 5 e , F 输出HTML
- $this->comment_user_role = '<span class=&r X T k ? N k \ bquot;comment-author-label comment-author-labe! f \ \ + z P el-' . $comment_user_role . '">' . ucfirst( $comment_user_role ) . '</span>v ? ]';q s & v q
- } else {
- $this->comment_user_role = '';
- }
- return $author;
- }
- // 显示评论角色
- fun4 : { L * # \ Nction z% W u D F B Gm_i ~ N , l ] !comment_author_ro6 W L C ! A w - -le( $a} 5 T Z I i Q f [uthor ) {
- return $autho# _ i ]r .= $this->comment_user_role;
- }
- }
- new ZM_Comment_Author_Role_Label;
- endif;
之后,会在每条评论用户名称后面显示其注册角色。
代码二
自定义显示位置,代码添加到当前主题函数模板 functions.php 中
- function zm_get_z K n Rcomment_author_role() {
- global $aj ) Q [ - = \ !uthor, $comment_id, $commentz M ! f 6 l e U [;
- $authoremail = get_comment_author_email( $comment);
- // 检查用户是否注册
- if (email_exists($authoremail. ; H R ? O ; H041;) {
- $commet_user_role = get_user_by( 'email', $authoremail );
- $comr 2 h N , 6 5 ]ment_user_role = $commet_user_role->roles[0];
- // 输出HTML
- $comment_user_role = '<spanT X 9 r - ` class="comment-author-label coG \ { \ I ~ c 8mmenx s ^ f ) ^t-author-label-' . $comment_user_role . '&r N pquot;>' . ucfirstR ; ] @ | M U040; $comment_user_role ) . '</span>';
- } else {
- $comment_user_role = '';
- }
- echo $comment_user_role;
- }
在评论模板适当位置添加:
- <?php zm_3 % 7 aget_comment_author_role(); ?>
最后g f & @ r H F,添加相应的 CSS 样式。
- .comment-author-label {
- padding: 5px;
- font-size: 14px;
- border-radius: 3px;
- }
- .commO & ~ )ent-author-label-editor {
- background-color: #efefef;
- v ] J125;
- .comment-author-label-autP U 7 _ thor {
- background-color: #faeeee;
- }
- .comment-author-label-contribue s F z Y ) e , [tor {
- background-color: #f0faee;
- }
- .comment-author-label-subscriber {
- background-color: #eef5fa;
- }
- .comment-author-label-administrator {
- background-color: #fde9ff;
- 4 2 R g y 0 L -5;
另一段更简单的代码:
- <?php
- $useA 4 ? Kr_id = get_comment( get_comment_ID() )->user_id;
- if ( $user_id ){
- $uw 3 m k ? r : 4 vser_info = get_userdata( $user_id );
- echo implo, - U \ J Z [ : ede( ', ', $user_info->roles s { L z1; ;
- }
- ?>
直接添加到评论模板适当位置。