Old

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

声明: 除非注明,ZWWoOoOo文章均为原创,转载请以链接形式标明本文地址
本文地址: http://zww.me/archives/25656

181 comments

  1. airoschou airoschou Google Chrome 19 Google Chrome 19 Windows XP Windows XP

    第2次沙发~ 素服

    改公告栏里的内容就是改这页面里内容?还是发文章?

    沙发
  2. 刘印博客 刘印博客 360Safe Explorer 360Safe Explorer Windows 7 Windows 7

    这个不错哦,我最近也一直在纠结这个东西~

    板凳
  3. zwwooooo zwwooooo Firefox 12 Firefox 12 Windows 7 Windows 7

    @airoschou
    直接发评论就行了,会自动调用最新那条评论内容。

  4. ......
  5. 小蝴蝶 小蝴蝶 Google Chrome 24 Google Chrome 24 Windows 7 Windows 7

    朱大大~应该把<?php if ($user_ID)改成<?php if (current_user_can('level_10')) ,不然注册用户身份为订阅者的,也会出现发布公告的链接

    81楼
    • zwwooooo zwwooooo Firefox 18 Firefox 18 Windows 7 Windows 7

      @小蝴蝶
      我这里只针对个人博客,不开放注册那种,你要开放注册,就自己改一下,折腾。

  6. 所谓刚子 所谓刚子 Google Chrome 24 Google Chrome 24 Windows 7 Windows 7

    其实我很想在tp上实现这个功能,就是代码能力有限

    82楼
  7. xyixyixyi xyixyixyi Google Chrome 26 Google Chrome 26 Windows 8 Windows 8

    :razz: :razz: 可是别人回复会显示在公告栏上```应该怎么弄```我已经使用ajax方法不可以让人评论但是回复公告栏会显示.

    83楼
  8. xyixyixyi xyixyixyi Google Chrome 26 Google Chrome 26 Windows 8 Windows 8

    请教你这个代码里怎么加user_id=1 就是想公告栏只显示管理员的`不显示回复的.请教请教~~~折腾到现在还没折腾出来.

    84楼
  9. xyixyixyi xyixyixyi Google Chrome 26 Google Chrome 26 Windows 8 Windows 8

    :mrgreen: :mrgreen: 已经研究出来了.

    85楼
  10. 感叹帝 感叹帝 Google Chrome 28 Google Chrome 28 Windows 7 Windows 7

    我加了这个公告栏在侧边栏,只显示欢迎光临本博

    86楼
    • zwwooooo zwwooooo Firefox 20 Firefox 20 Windows 7 Windows 7

      @感叹帝
      这些需要读取cookie数据哦,你得确定你的浏览器是不是清空了cookie

  11. 感叹帝 感叹帝 Google Chrome 28 Google Chrome 28 Windows 7 Windows 7

    zww先森,我转载一下这个文章,留作备份,修改主题用。。我会以链接形式标明本文地址
    本文地址: http://zww.me/archives/25656

    87楼
    • zwwooooo zwwooooo Firefox 20 Firefox 20 Windows 7 Windows 7

      @感叹帝
      转载的话,麻烦你把图片放到你的服务器,虽然我设了防盗链。

  12. 小淅 小淅 Google Chrome 28 Google Chrome 28 Windows 7 Windows 7

    为什么我的不行呢?只显示一堆代码,是直接把代码扔到小工具里面的文本工具里吗?

    88楼
    • zwwooooo zwwooooo Firefox 23 Firefox 23 Windows 8 Windows 8

      @小淅
      我可不记得 WordPress 的小工具可以执行 php 代码,你怎么会想到把代码扔到小工具里面,囧。所以你还是认真检查一下步骤吧,文章里面要你把代码放 sidebar.php

    • 小淅 小淅 Google Chrome 28 Google Chrome 28 Windows 7 Windows 7

      @zwwooooo
      已经可以支持了,这里有方法http://www.wpdaxue.com/widget_text-support-shortcodes-php-code.html

    • zwwooooo zwwooooo Firefox 23 Firefox 23 Windows 8 Windows 8

      @小淅
      你这个是用 filter,我说的是WP原生不支持。

  13. 独西行 独西行 Internet Explorer 9 Internet Explorer 9 Windows 7 Windows 7

    试试再说,你这个没有评论插件的吧。你知道下方滚动显示公告的插件么?

    89楼
    • zwwooooo zwwooooo Firefox 25 Firefox 25 Windows 8.1 Windows 8.1

      @独西行
      那个可以用 jQuery 写,你说的这个可能“wange.im”写过,你去他的博客看看

  14. 霓虹 霓虹 Firefox 26 Firefox 26 GNU/Linux GNU/Linux

    能否给我一下这个公告的css呢,因为我对这个一窍不通,不会写

    90楼
    • 霓虹 霓虹 Firefox 26 Firefox 26 GNU/Linux GNU/Linux

      @霓虹
      请问下网站右下角的小文本提示使用什么插件,还是别的

    • zwwooooo zwwooooo Firefox 26 Firefox 26 Windows 8.1 Windows 8.1

      @霓虹
      你用的是Firefox,自己可以用 firebug 看,如果没装这插件可以直接 ctrl+shift+I 看

    • zwwooooo zwwooooo Firefox 26 Firefox 26 Windows 8.1 Windows 8.1

      @霓虹
      直接写在主题的,没用插件

  15. 霓虹 霓虹 Google Chrome 31 Google Chrome 31 GNU/Linux GNU/Linux

    真是不好意思,还是不会

    91楼
  16. 有点蓝 有点蓝 Opera 12 Opera 12 Windows 7 Windows 7

    Z大,访客可以评论的那个方法放出来了吗?

    92楼
    • zwwooooo zwwooooo Firefox 28 Firefox 28 Windows 8.1 Windows 8.1

      @有点蓝
      哪个?/这个不是访客可以评论么?

    • 有点蓝 有点蓝 Maxthon 4 Maxthon 4 Windows 7 Windows 7

      @zwwooooo
      呃是吗,我当时测试的时候,对访客只能显示公告内容,而且没有链接可以点进去参与讨论啊,除非该页面不设置私密,并在公告处给一个链接入口。
      莫非我又大意了…… :arrow:

Leave a Reply