在wp中有着管理员回复留言者的功能,但是正常的情况下,管理员和评论者的留言信息的样式是一样的,所以一眼看上去没什么区别。只能通过查看是否有admin这个人的留言信息。但是更多的博主们喜欢用自己心仪的英文名来显示,从而代替了默认的admin显示名。那么对阅读者来说,貌似留言都来自于访问者,而没有管理员的回复留言。
那么我总结了两个高亮管理员的留言的方法。方法如下:
方法一、 简单的固定管理员方法:
该方法只有当管理员的邮箱地址是固定不变的时候才可以生效,若改变的管理员的邮箱地址,那么也需要在源代码中修改相应的地址。所以该方法比较适合一个人固定邮箱地址的博客。
打开comments.php文件,若管理员只有一个人,添加如下代码:
1234567891011 |
< ?php $admin_email = "hiro.zhd@gmail.com"; $admin_comment = false; //设置一个布尔类型的变量来判断该留言是否为管理员的留言 //如果该留言是管理员的留言 if($comment->comment_author_email == $admin_email){ $admin_comment = true; break; }?> |
当然若一个博客有多个管理员的话,可以使用一个数组来存放这些管理员的邮箱地址,那么该方法的源代码是:
12345678910111213141516 |
< ?php $admin_emails = array( "hiro.zhd@gmail.com", "hiro@ihiro.org", "hiro@gmail.com" ); $admin_comment = false; //设置一个布尔类型的变量来判断该留言是否为管理员的留言 foreach ($admin_emails as $admin_email){ //如果该留言是管理员的留言 if($comment->comment_author_email == $admin_email){ $admin_comment = true; break; } }; ?> |
最后在使用xhtml来控制留言列表时,只需判断$admin_comment的布尔值即可,为真则该留言是管理员的留言,为假,则是来访者的留言,xhtml源码如下:
123 |
<li class="<?php if($admin_comment) echo 'admincomment'; ?>"> <!-- 这里输出其他的html信息 --></li> |
最后,只需对类admincomment样式化即可突出管理员的留言(样式化的css则可以自己随意更改),如:
12345 |
.admincomment{ background:#191919; color:#FFF; border:1px solid #333;} |
方法二、自动侦测管理员邮箱:
只需添加一些与数据库操作的php代码即可自动侦查到博客中所有管理员的邮箱地址,从而存储在一个数组中,代码如下:
123456789101112131415 |
< ?php $user_level = 8; //默认地,wp有1-10是个数字来控制wp中用户的角色(如管理员、编辑、作者、阅读者等),而管理员的数字则是8 $admin_emails = array(); //用来存放侦查到的所有管理员邮箱地址的数组 //从数据库中查找做角色数字为8的所有管理员帐号 $admin_accounts = $wpdb->get_results("SELECT * FROM $wpdb->usermeta WHERE meta_key = 'wp_user_level' AND meta_value >= $user_level "); //获得每个管理员各自的邮箱地址 foreach ($admin_accounts as $admin_account){ $admin_info = $wpdb->get_row("SELECT * FROM $wpdb->users WHERE ID = $admin_account->user_id"); //将管理员的邮箱地址添加到存放的数组中 $admin_emails[$admin_account->user_id] = $admin_info->user_email; }?> |
既然获得了所有管理员的邮箱地址,那么剩下的工作就和方法一的多个管理员判断一样了,即:
12345678910 |
< ?php $admin_comment = false; //设置一个布尔类型的变量来判断该留言是否为管理员的留言 foreach ($admin_emails as $admin_email){ //如果该留言是管理员的留言 if($comment->comment_author_email == $admin_email){ $admin_comment = true; break; } }; ?> |
然后xhtml代码:
123 |
<li class="<?php if($admin_comment) echo 'admincomment'; ?>"> <!-- 这里输出其他的html信息 --></li> |
css代码:
12345 |
.admincomment{ background:#191919; color:#FFF; border:1px solid #333;} |
那么到此为止,高亮管理员留言的方法介绍完毕。希望可以给大家带去点帮助!