WordPress:高亮管理员的留言信息
在wp中有着管理员回复留言者的功能,但是正常的情况下,管理员和评论者的留言信息的样式是一样的,所以一眼看上去没什么区别。只能通过查看是否有admin这个人的留言信息。但是更多的博主们喜欢用自己心仪的英文名来显示,从而代替了默认的admin显示名。那么对阅读者来说,貌似留言都来自于访问者,而没有管理员的回复留言。
那么我总结了两个高亮管理员的留言的方法。方法如下:
方法一、 简单的固定管理员方法:
该方法只有当管理员的邮箱地址是固定不变的时候才可以生效,若改变的管理员的邮箱地址,那么也需要在源代码中修改相应的地址。所以该方法比较适合一个人固定邮箱地址的博客。
打开comments.php文件,若管理员只有一个人,添加如下代码:
1 2 3 4 5 6 7 8 9 10 11 | < ?php $admin_email = "hiro.zhd@gmail.com"; $admin_comment = false; //设置一个布尔类型的变量来判断该留言是否为管理员的留言 //如果该留言是管理员的留言 if($comment->comment_author_email == $admin_email){ $admin_comment = true; break; } ?> |
当然若一个博客有多个管理员的话,可以使用一个数组来存放这些管理员的邮箱地址,那么该方法的源代码是:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | < ?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源码如下:
1 2 3 | <li class="<?php if($admin_comment) echo 'admincomment'; ?>">
<!-- 这里输出其他的html信息 -->
</li> |
最后,只需对类admincomment样式化即可突出管理员的留言(样式化的css则可以自己随意更改),如:
1 2 3 4 5 | .admincomment{ background:#191919; color:#FFF; border:1px solid #333; } |
方法二、自动侦测管理员邮箱:
只需添加一些与数据库操作的php代码即可自动侦查到博客中所有管理员的邮箱地址,从而存储在一个数组中,代码如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | < ?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; } ?> |
既然获得了所有管理员的邮箱地址,那么剩下的工作就和方法一的多个管理员判断一样了,即:
1 2 3 4 5 6 7 8 9 10 | < ?php $admin_comment = false; //设置一个布尔类型的变量来判断该留言是否为管理员的留言 foreach ($admin_emails as $admin_email){ //如果该留言是管理员的留言 if($comment->comment_author_email == $admin_email){ $admin_comment = true; break; } }; ?> |
然后xhtml代码:
1 2 3 | <li class="<?php if($admin_comment) echo 'admincomment'; ?>">
<!-- 这里输出其他的html信息 -->
</li> |
css代码:
1 2 3 4 5 | .admincomment{ background:#191919; color:#FFF; border:1px solid #333; } |
那么到此为止,高亮管理员留言的方法介绍完毕。希望可以给大家带去点帮助!








恩,方法很多,都很方便呵呵
确实方便
很强大,学习一下。
联合国要求hiro放出效果演示图~
看到我的回复留言信息没有,这就是效果啊!!!我样式化我的留言为粉红,并加了下滑线!
我也回复一个来个鲜明对比,哈哈~
偶也测试下这个回复功能。
看来有时间 我得来实践下
好炫的颜色啊。
哈哈 我的已经高亮了。。。。
我早发现了哦!!
只要评论见血就够了哈!
很好,加以区别让页面更友好,方便阅读。
我想知道怎么在最新评论里隐去管理员的评论。。看着和这的判断原理是一样的,但我不会写,大师啥时候有空教一下。。
这个简单啊,只需在留言列表的外围加一个if语言判断一下子就好了,如:
if($comment->comment_author_email != $admin_email)
留言人的邮箱个管理员邮箱不相等时才显示留言,那么管理员的留言就可以隐去了啊!
曾几何时,这就是我想要的
我该学习一下啊 快落伍了
正迫切需要这个,请问分别修改那些文件啊?因为我是小菜,所以麻烦讲解明白点,谢谢
学习了~希望会用到!
博主 你好 代码基本上看明白了 可是不知道该加在哪个文件里还是新建一文件呢?
我在文章中写了啊,修改comments.php文件即可!
不明白XHTML是哪个文件?说得详细点可以吗??
<li class="”>
这个代码不知道放哪里!···
修改comments.php文件
不好意思,我真的没有看明白您的代码,上面的php判断管理员我已经添加到comments.php中了,但是下面的:
<li class="”>
这个到底是如何添加呢?在Comments.php中吗?可是我添加后出错了呀,麻烦您能详细的说一下吗?
因为每个主题的comments.php文件的代码不一样,不过你看到有li标签的地方就都添加了试试啊!
博客做的不错呀!支持你的博客!
请问,然后xhtml代码那部分对于一般的WP主题,对应哪个部分?谢谢了
你找到.commentlist列表标签里面li标签,有的主题是调用了functions.php文件里的mytheme_comment函数,所以li标签有时会存在在这个函数中!
有点复杂,慢慢研究,谢谢技术分享
Hello! I agree with you, that this topic is inspirational as is and the sharing in this Blog!!
博主啊 你这个评论样式不错 可以分享一下吗?呵呵 感激不尽嘿嘿ie
呵呵,这效果和样式都是自己写的,你可以到源代码里去找啊!!!