WordPress评论实现另类公告栏

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. 效果图(我的稍微不同,我去掉了“公告栏”标题)

访客看到的

120601-announcement-1

博主自己:有此“私密”页面的评论链接

120601-announcement-2

折腾玩(完)。

各位盆友,节日快乐!哈哈哈……

zww
or
oooo

“WordPress评论实现另类公告栏”有181条评论

  1. Cysime says:

    评论做公告....的确很另类......

    1. zwwooooo says:

      @Cysime
      哈,好玩吧

  2. NONO says:

    这个似乎不错 !!!!要开始折腾了!!!

  3. NONO says:

    这个似乎像那个空间里的说说!!!我就是需要这个东西

  4. NONO says:

    如何改变字体大小?

  5. NONO says:

    弄了半天 弄得还是很戳 但是比原本好多了

    1. zwwooooo says:

      @NONO
      慢慢折腾玩吧

  6. 郑永 says:

    有空也折腾一下, 呵呵。

    1. zwwooooo says:

      @郑永
      嗯嗯,玩玩

  7. 云淡然 says:

    博主的博客做的非常的漂亮。膜拜一下。。
    、、另外不知可以友链一下下吗?

    1. zwwooooo says:

      @云淡然
      谢谢夸奖,但别膜拜。
      不好意思,友链已停止多年。

    2. Demon says:

      @zwwooooo
      嘿嘿。仅友情。不链接。 :mrgreen:

    3. zrqx008 says:

      @Demon
      :mrgreen: 仅搞基,不链接。

    4. Demon says:

      @zrqx008
      你好G友。

  8. Demon says:

    提BUG了。我集成到侧边的时候发现与GOOGLE JQ库有冲突。我把代码移除了加载的JS就正常被加载了。不知道是不是代码中的函数有冲突。

    1. zwwooooo says:

      @Demon
      函数跟jQ冲突?好火星哦。

    2. Demon says:

      @zwwooooo
      是的。不知道神马情况的。换成在线JQ库也是不行的。晚上再集成到其它主题看看

  9. 葱头 says:

    :smile: 已用上,感谢分享

    1. zwwooooo says:

      @葱头
      哈,我觉得很方便

  10. 哇!!太高端啦!!谢谢楼主,在下已经弄成了!!! :mrgreen:

    1. zwwooooo says:

      @稻草刀刀
      好玩吧,哈。

  11. airoschou says:

    纠结啊,到底要不要用这个功能。。。

    1. zwwooooo says:

      @airoschou
      需要就玩玩,不需要就别浪费时间了,哈

  12. agony says:

    由于公告栏是评论方式出现的,结果出现在热评文章里了,怎么去除?

    1. zwwooooo says:

      @agony
      热评文章里要排除页面的,呵呵。

  13. 葱头 says:

    Z大求赐教,是用jquery方式去掉评论框让游客只能点回复来回复公告么?

    1. zwwooooo says:

      @葱头
      用css隐藏,但这样一些人可以用firebug显示出来,不过我的是post时动了手脚,所以即使让主评论框显示出来也发不出评论。

    2. 小蝴蝶 says:

      @zwwooooo

      zwwooooo:
      用css隐藏,但这样一些人可以用firebug显示出来,不过我的是post时动了手脚,所以即使让主评论框显示出来也发不出评论。

      我是这样的: 在comments.php里,在respond外面加上判断,,这样在除了公告栏以外的页面会正常显示评论框,在公告栏页面不是管理员则不显示评论框

    3. 小蝴蝶 says:

      @小蝴蝶
      php被吃了,补发:
      if ( current_user_can('level_10')||!is_page(公告栏页面ID) ) :

    4. 小蝴蝶 says:

      @zwwooooo
      不行刚发现这样一来评论框出不来,游客虽然不能发主评论,而且也不能回复主评论了,朱大能完善它就好了

    5. zwwooooo says:

      @小蝴蝶
      我是改了php文件,差不多吧。

    6. zwwooooo says:

      @小蝴蝶
      嘻嘻,我的可以,但懒得写教程,不是很方便。

    7. 小蝴蝶 says:

      @zwwooooo
      我现在也改用css隐藏了,先按照原来的判断隐藏respond,再隐藏评论列表里class非bypostauthor且非children的评论, 肯定没有大大的高明,但凑合凑合也能用 :mrgreen:

    8. zwwooooo says:

      @小蝴蝶
      你用php判断下

  14. 春衣坐绿苔 says:

    这个真不错,借用走了

  15. airoschou says:

    请教一下大叔,我设置后非博主用户点连接是404,这该如何设置?

    1. zwwooooo says:

      @airoschou
      1. 展示公告栏的页面要公开
      2. 还是别学我的可以回复的公告,设置麻烦,你看我都没写文章共享就知道了。一定要的话建议简单实现:用css隐藏发表主评论的评论框,点击回复后才会出现。

    2. airoschou says:

      @zwwooooo
      懂了,哈哈

  16. 鬼娃娃 says:

    麻烦您能到我博客看下吗》公告栏多出来的字怎么换行。。还有你的公告栏怎么弄得

    1. zwwooooo says:

      @鬼娃娃
      自动换行的啊,注意控制文字个数。

  17. 鬼娃娃 says:

    添加完直接进不去了,我去

  18. llbxwj says:

    哥们,为啥我的加上了显示乱码?你代码中的英文都是乱码。

  19. llbxwj says:

    哦,已经搞定原来是编码错了。

    1. zwwooooo says:

      @llbxwj
      所以说先自己耐心找找原因,哈

  20. Mr Simon Lau says:

    哈哈。。我也想加上,可惜我的page 被主题限制了评论。。商业主题。
    能用post么? z哥?

    1. zwwooooo says:

      @Mr Simon Lau
      page也可以post的,自己根据single.php改。

发表评论

昵称 *

网址

B em del U Link Code Quote