2012.6.11 更新:现在来访朋友可以对公告进行回复了。
有点时间发呆,在闲逛时看到一些博客有公告栏,突然想给现在的主题加上。想想我以前的 zSnos 主题就有公告栏(当时我命名为唠叨栏),那时是直接给主题写了个专门写公告的后台。
正准备给 zBorder-pro 加公告栏,头脑一闪,为何不用 WordPress 的评论来作为公告栏内容呢?发公告就像发一条评论,不是很简单嘛。立即动手,下面是方法,有兴趣的朋友跟我瞎折腾吧。
1. 建立一个页面,设为“私密”(就是访客无法访问该页面),什么名随意,主要要记住该页面的 ID(如何看页面ID?很简单,你新建页面时注意浏览器的地址栏,有这段“post.php?post=25524&action=edit”,那个 post=25524 中的 25524 就是,哈。又或者建立好页面后,在页面列表那里,鼠标停留在此页面的“编辑”按钮看浏览器地址栏也能找到类似 post=xxxx),另外注意要允许评论。(PS:有些主题的页面是木有加评论功能,自己想办法修改主题或者用文章来代替)
2. 然后把下面的代码扔到你的公告栏位置,如侧边栏(sidebar.php)顶端
<?php /* 使用WP评论作为公告栏 by zwwooooo | zww.me */ $page_ID=25524; //填写页面ID ?> <div class="widget"> <h3>公告栏</h3> <div> <?php $comments = get_comments("number=1&post_id=$page_ID"); $announcement = $comments[0]->comment_content; if ($announcement) echo $announcement; else echo '欢迎光临本博!'; ?> <?php if ($user_ID) echo ' [<a href="' . get_page_link($page_ID) . '#respond" rel="nofollow" class="anno">发表公告</a>]'; ?> </div> </div>
2012.06.01 22:50 代码升级:支持显示最近 n 条公告
<?php /* 使用WP评论作为公告栏 by zwwooooo | zww.me */ ////参数设定 $page_ID=25111; //用来作为公告栏的页面或者文章id $num=2; //显示公告的条数 ?> <h3>公告栏</h3> <ul> <?php $announcement = ''; $comments = get_comments("number=$num&post_id=$page_ID"); if ( !empty($comments) ) { 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>'; } } if ( empty($announcement) ) $announcement = '<li>欢迎光临本博!</li>'; echo $announcement; ?> </ul> <?php if ($user_ID) echo '<p style="text-align:right;">[<a href="' . get_page_link($page_ID) . '#respond" rel="nofollow" class="anno">发表公告</a>]</p>'; ?>
3. 样式?自己写吧,不写也可以
4. 效果图(我的稍微不同,我去掉了“公告栏”标题)
访客看到的
博主自己:有此“私密”页面的评论链接
折腾玩(完)。
各位盆友,节日快乐!哈哈哈……
zww
赏
oooo
or
- 本文标题:WordPress评论实现另类公告栏
- 本文链接:https://zww.me/archives/25656
- 发布时间:2012年06月01日 09:18
- 版权声明:除非注明,文章均为 zwwooooo 原创,转载请以链接形式标明本文地址!
评论做公告....的确很另类......
@Cysime
哈,好玩吧
这个似乎不错 !!!!要开始折腾了!!!
这个似乎像那个空间里的说说!!!我就是需要这个东西
如何改变字体大小?
弄了半天 弄得还是很戳 但是比原本好多了
@NONO
慢慢折腾玩吧
有空也折腾一下, 呵呵。
@郑永
嗯嗯,玩玩
博主的博客做的非常的漂亮。膜拜一下。。
、、另外不知可以友链一下下吗?
@云淡然
谢谢夸奖,但别膜拜。
不好意思,友链已停止多年。
@zwwooooo
嘿嘿。仅友情。不链接。
@Demon
仅搞基,不链接。
@zrqx008
你好G友。
提BUG了。我集成到侧边的时候发现与GOOGLE JQ库有冲突。我把代码移除了加载的JS就正常被加载了。不知道是不是代码中的函数有冲突。
@Demon
函数跟jQ冲突?好火星哦。
@zwwooooo
是的。不知道神马情况的。换成在线JQ库也是不行的。晚上再集成到其它主题看看
已用上,感谢分享
@葱头
哈,我觉得很方便
哇!!太高端啦!!谢谢楼主,在下已经弄成了!!!
@稻草刀刀
好玩吧,哈。
纠结啊,到底要不要用这个功能。。。
@airoschou
需要就玩玩,不需要就别浪费时间了,哈
由于公告栏是评论方式出现的,结果出现在热评文章里了,怎么去除?
@agony
热评文章里要排除页面的,呵呵。
Z大求赐教,是用jquery方式去掉评论框让游客只能点回复来回复公告么?
@葱头
用css隐藏,但这样一些人可以用firebug显示出来,不过我的是post时动了手脚,所以即使让主评论框显示出来也发不出评论。
@zwwooooo
我是这样的: 在comments.php里,在respond外面加上判断,,这样在除了公告栏以外的页面会正常显示评论框,在公告栏页面不是管理员则不显示评论框
@小蝴蝶
php被吃了,补发:
if ( current_user_can('level_10')||!is_page(公告栏页面ID) ) :
@zwwooooo
不行刚发现这样一来评论框出不来,游客虽然不能发主评论,而且也不能回复主评论了,朱大能完善它就好了
@小蝴蝶
我是改了php文件,差不多吧。
@小蝴蝶
嘻嘻,我的可以,但懒得写教程,不是很方便。
@zwwooooo
我现在也改用css隐藏了,先按照原来的判断隐藏respond,再隐藏评论列表里class非bypostauthor且非children的评论, 肯定没有大大的高明,但凑合凑合也能用
@小蝴蝶
你用php判断下
这个真不错,借用走了
@春衣坐绿苔
慢慢玩
请教一下大叔,我设置后非博主用户点连接是404,这该如何设置?
@airoschou
1. 展示公告栏的页面要公开
2. 还是别学我的可以回复的公告,设置麻烦,你看我都没写文章共享就知道了。一定要的话建议简单实现:用css隐藏发表主评论的评论框,点击回复后才会出现。
@zwwooooo
懂了,哈哈
麻烦您能到我博客看下吗》公告栏多出来的字怎么换行。。还有你的公告栏怎么弄得
@鬼娃娃
自动换行的啊,注意控制文字个数。
添加完直接进不去了,我去
哥们,为啥我的加上了显示乱码?你代码中的英文都是乱码。
哦,已经搞定原来是编码错了。
@llbxwj
所以说先自己耐心找找原因,哈
哈哈。。我也想加上,可惜我的page 被主题限制了评论。。商业主题。
能用post么? z哥?
@Mr Simon Lau
page也可以post的,自己根据single.php改。