回看网站出现的最早出现的形式,就是以bbs的形式出现的,即发一篇文章,可以让别的用户回复,这样一个最初非常简单的形式,现在得到了众多扩展,但是所有的网站不管是门户网站、博客、商铺等等都可以发现他们共同的特点,那就是以bbs的最原始方式的多种体现。 所以,今天我们来说一说,如何将wordpress的原生评论机制,作为一个bbs来呈现。 我们的新版官网加入这一功能,可以提供给大家一个提问和交流的社区,那么,我们如果需要修改wordpress原生评论,需要怎么做呢? 下面我们来看一看论坛的基本形式:
1.注册用户可以发帖2.论坛的排序机制—— 有新评论的文章被顶到第一行
这样一看,wordpress的原生评论需要修改的地方就变成如下几个地方:
1.增加wordpress前端投稿功能 说了这么多,小编吧这次官网已经改造好的bss页面截图发一些,你就可以清晰的看到和原生评论有所不同的地方了。
改造你的wordpress原生评论为bbs 1.增加前端投稿功能 前端投稿功能,目前的网络上有很多,具体可以参考露兜博客的一篇文章 wordpress添加投稿功能 利用这篇文章制作一个投稿页面,这个功能的实现是利用wordpress的一个函数:wp_insert_post 插入文章 你可以对其进行改造,默认的功能是会将用户的用户昵称、电子邮件和用户网站发送到正文,你可以将这些删除掉 ,具体可以将“添加表单处理代码”中的62行(详见露兜博客博文) $post_content = '昵称: '.$name.'<br />Email: '.$email.'<br />blog: '.$blog.'<br />内容:<br />'.$content; 修改为: $post_content = $content; 这样就可以只输出正文了
2.改造评论和发帖人 发帖人的帖子正文模块很容易解决,这个模块和wordpress的文章模块一样,不同的是,我们需要调用作者(发帖人)的信息,如头像、发帖人昵称、网站、发贴数量等等。 下面是调用作者信息的代码(php): get_avatar( get_the_author_email(), 60 );//调用作者头像 get_the_author()//作者昵称 get_author_posts_url( get_the_author_meta( ‘ID’ )) ; //作者归档链接 echo the_author_posts(); //发帖数量 这样你就能轻松的调用好发帖人(楼主)的信息了
3.评论列表的改造 评论列表的改造也非常简单,使用wp_list_comments,网上有大量的可使用的列表资料,这里不做阐述 这里我们要说的是,需要判断一下,是否是楼主回复
function is_author_comment( $comment_ID = 0 ) { 这段代码添加进到functions.php中 然后在wp_list_comments中找到一个合适的位置,写入判断: <?php if (is_author_comment($comment->comment_ID)) :?>
//楼主回复,可以使用图片,或者文字提示下 这样就能够把楼主的回复和其他人的回复区分开了。
4.帖子的排序问题 这些问题解决之后,最后解决一下排序的问题,我们想要像论坛一样,有人顶贴,帖子会被顶起来,这需要使用最后的评论时间来作为判断 将如下代码放入functions.php中
function comment_meta_update($comment_ID) {
function comment_meta_delete($post_ID) { 在论坛列表中,使用query_posts来控制一下文章的输出:
<?php$posts = query_posts($query_string . '&orderby=meta_value&showposts=10&meta_key=commentTime&order=DESC'); ?>
原理:加入到functions.php中的代码会再文章发布时候,自动添加一个自定义字段commentTime记录评论的时间,有新评论时会自动更新时间。下面使用query_posts 正是使用这一自定义栏目判断,来达到顶帖子的效果。 现在,你明白如何利用wordpress制作一个bbs吗? 当然,wordpress制作出来的是非常简单的bbs,小型的社区也基本上够用啦,并且,还可以扩展一下他的功能,比如安装一下会员相关插件,增加用户等级,称号,积分等等,又比如可以增加一个必须要回复才能显示的内容,这些都是可以达到的。 当然,昨天我发布的一篇文章也许对大家也有用,这里可以附带再说一下:如果你使用了多说,那么你改造的bbs也会被多说给覆盖掉,利用之前发布的代码,在文章插入时,自动关闭多说评论即可 在露兜的那篇文章中找到这段代码: $status = wp_insert_post( $tougao ); 在这段代码下面添加:
$status = wp_insert_post( $tougao ); 即可在前端发布帖子时,自动关闭多说的评论了。 说了这么多,如果你有兴趣可以自己试一试,等到官网更新之后,欢迎来我们的bbs进行讨论哦!~ (责任编辑:最模板) |