wordpress公告栏查看历史公告和游客回复功能

z大的公告栏教程里并没有给出如何实现他的公告栏中回复功能,为此折腾了大半天啊
php的判断感觉就像做数学题一样(我的微积分啊,泪奔)
实现方法:

一.添加查看历史公告功能

把Z大教程中的

foreach ($comments as $comment) {
$announcement .= '<li>'. convert_smilies($comment->comment_content) . ' <span style="color:#999;">(' . get_comment_date('Y/m/d H:i',$comment->comment_ID) . ')</span></li>';
}

改为

foreach ($comments as $comment) {
$announcement .= '<li><a href="' . get_permalink($page_ID) . "#comment-" . $comment->comment_ID . '" title= "查看这条公告"> @</a> '. convert_smilies($comment->comment_content) . ' <span style="color:#999;">(' . get_comment_date('Y/m/d H:i',$comment->comment_ID) . ')</span></li>';
}

二.防止非管理员的用户或游客直接评论

在comments.php里,在评论框的div(respond)外面加上判断,

<?php if (
current_user_can('level_10') //如果是管理员
||//或者
!is_page(公告栏页面ID) //不是公告栏页面
) : ?>

则输出评论框,
这样保证了在公告栏以外的页面正常显示评论框,在公告栏页面只对管理员显示评论框,
因为不是用css隐藏,所以用firebug也扒不出来,

说明: 此方法游客是依然不能回复评论的,因为respond出不来,但是不用设置页面为私密了,可以供游客查看所有公告

三.添加游客回复功能

方法就是把方法二中的判断改一下,通过css来隐藏评论框和主评论中的游客评论(对付firebug扒评论框的游客)
最后顺便提供管理员回复时评论不出现在公告栏的方法:用array下的parent => '0'来实现,看你们态度不热情!我很伤心所以都不详细说了!
demo请见本站留言板页面公告栏页面

12 Comments

Name *

E-mail *

Website

  1. 胡倡萌

    之前也看过Z大的文章,也打算为 WordPress大学 折腾个公告栏,有时间再试试 :guzhang:

  2. 冯广顺

    你好,能否提供“添加游客回复功能”的代码?
    估计不是态度不热情,而是这篇文章没有在搜索引擎上有很好的排位,所以没有太多人知道。(我也是鄱了很久,进了你的博客,后来,才惊奇地发现你的博客有此文)
    我想要一份代码,能否更新本博文或将源码分享?嘻嘻~

    • 小蝴蝶

      @冯广顺 : 我的方法是通过css隐藏,这个方法并不完美,更建议你使用这个方法屏蔽游客主评论http://mufeng.me/youku.html/comment-page-1#comment-8286

      • 冯广顺

        @小蝴蝶 : 按照你提供的链接实现了“不允许回复主评论”的功能。
        不过不懂得怎么做你个“状态墙”,能否再推荐一个“自定义页”的教程?

        例如:
        1、如何将该页面的主评论框去掉
        2、如何修改评论框的文字,让其和其他的评论框不一样,如:发表评论,改为发表说说?(单页,非全站)
        最后,若可能,还是想求您家的状态墙代码,嘻嘻。

  3. Neysa

    折腾好了,谢谢 :guzhang:

    • 小蝴蝶

      不谢 有用就好 :smile:

      • Neysa

        @小蝴蝶 你的评论回复没有邮件通知吗?我是不小心又跑来了才看到你的回复

        • 小蝴蝶

          @Neysa 额 当时用手机客户端回的 没有通知 正常是有的

  4. 常阳时光

    表示文章的关键点解析得不够清晰
    哈哈……

  5. 启辰

    有个小问题,我标题加红。同步时,他会把代码也同步的,怎么才能同步时,不同步那代码

    • 小蝴蝶

      @启辰 标题样式用单独css 不要写在标题里面就是了