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 原创,转载请以链接形式标明本文地址!
大师,加点JS效果吧,让他滚动显示
@80后男人
以前滚了那么久了,就不让它滚了。
博主有没有卢松松那样的公告栏,最好是插件类型的!
@我的名字叫麒
不知道卢松松的公告栏是怎样的,为何不直接向他要呢?况且我喜欢我自己的,哈。
就是在网站最上面有一个高不到50的通栏样子的一句话。他的是Z-Blog,我的是wordpress
@我的名字叫麒
自己随便找个WP插件就能实现,别忘了WP插件数不胜数。
我已经用起了,呵呵,多谢zww。。。
@TekTea
慢慢折腾(玩)
@zwwooooo
发现个问题,这个公告其他“作者”身份的会员点击发布后提示“很抱歉,没有找到你要的内容”,这是啥问题呢?
@TekTea
注意权限
get_comments();最好能加个user_id字段,这样控制输出的都是自己想要的id的评论或留言。
@胡敏
根据需要自己加参数吧。
大大,我想要弄成跟你一样,别人可以评论,但是在公告栏只显示出我自己的,该怎么弄?拜谢……
@落梵
文中写了,主评论发表可以用css隐藏窗口实现,我的方法麻烦点,不通用。
@zwwooooo
都是瞎折腾的,不会php、也不会CSS
@落梵
这……我也没办法
好生猛啊!创意啊创意!
@Cyan
玩玩呗,哈
Z神啊,我还是没搞明白这个公告是怎么个情况?这个公告是单页么?每次自己打开公告页面,手工添加代码,一条一条输入?
我发布公告还是和发布文章一样,只不过文章形式上要选择公告?要不然我怎么一条一条的调用出来?
@折子戏
1. 建个页面,设问私密
2. 在侧边栏放我文章的代码调用此页面的评论
博主要发公告就去那个页面(只有博主能访问)
怎么自动获取当前页面ID,我的是自定义单页面。。
加入滚动效果就更完美了~
@子非我
滚动嘛,其实很简单吧,我以前也写过这类教程,只是我自己现在不用了
为什么显示的会是post的评论啊,明明一样的代码啊。
单条显示的就是page,多条就是post,不知道为什么。
@Zorro
你指定id号就行了,其实post和page只是细小区别
朱大大~应该把<?php if ($user_ID)改成<?php if (current_user_can('level_10')) ,不然注册用户身份为订阅者的,也会出现发布公告的链接
@小蝴蝶
我这里只针对个人博客,不开放注册那种,你要开放注册,就自己改一下,折腾。
其实我很想在tp上实现这个功能,就是代码能力有限
@所谓刚子
慢慢尝试下
可是别人回复会显示在公告栏上```应该怎么弄```我已经使用ajax方法不可以让人评论但是回复公告栏会显示.
请教你这个代码里怎么加user_id=1 就是想公告栏只显示管理员的`不显示回复的.请教请教~~~折腾到现在还没折腾出来.
已经研究出来了.
@xyixyixyi
搞好就行,慢慢折腾
我加了这个公告栏在侧边栏,只显示欢迎光临本博
@感叹帝
这些需要读取cookie数据哦,你得确定你的浏览器是不是清空了cookie
zww先森,我转载一下这个文章,留作备份,修改主题用。。我会以链接形式标明本文地址
本文地址: http://zww.me/archives/25656
@感叹帝
转载的话,麻烦你把图片放到你的服务器,虽然我设了防盗链。
为什么我的不行呢?只显示一堆代码,是直接把代码扔到小工具里面的文本工具里吗?
@小淅
我可不记得 WordPress 的小工具可以执行 php 代码,你怎么会想到把代码扔到小工具里面,囧。所以你还是认真检查一下步骤吧,文章里面要你把代码放 sidebar.php
@zwwooooo
已经可以支持了,这里有方法http://www.wpdaxue.com/widget_text-support-shortcodes-php-code.html
@小淅
你这个是用 filter,我说的是WP原生不支持。
试试再说,你这个没有评论插件的吧。你知道下方滚动显示公告的插件么?
@独西行
那个可以用 jQuery 写,你说的这个可能“wange.im”写过,你去他的博客看看