回看网站出现的最早出现的形式,就是以bbs的形式出现的,即发一篇文章,可以让别的用户回复,这样一个最初非常简单的形式,现在得到了众多扩展,但是所有的网站不管是门户网站、博客、商铺等等都可以发现他们共同的特点,那就是以bbs的最原始方式的多种体现。

所以,今天我们来说一说,如何将wordpress的原生评论机制,作为一个bbs来呈现。

我们的新版官网加入这一功能,可以提供给大家一个提问和交流的社区,那么,我们如果需要修改wordpress原生评论,需要怎么做呢?

下面我们来看一看论坛的基本形式:

1.注册用户可以发帖2.论坛的排序机制—— 有新评论的文章被顶到第一行

3.可以回帖,最新的回帖在第一行

4.显示发帖人和回帖人的信息(头像、昵称、描述等)

这样一看,wordpress的原生评论需要修改的地方就变成如下几个地方:

1.增加wordpress前端投稿功能

2.改进论坛区域的文章(帖子)排列机制——按照评论的新旧排列

3.回帖的样式修改(增加调用发帖人-回帖人的头像、名称等信息)

说了这么多,小编吧这次官网已经改造好的bss页面截图发一些,你就可以清晰的看到和原生评论有所不同的地方了。

改造你的wordpress原生评论为bbs

1.增加前端投稿功能

前端投稿功能,目前的网络上有很多,具体可以参考露兜博客的一篇文章  wordpress添加投稿功能

利用这篇文章制作一个投稿页面,这个功能的实现是利用wordpress的一个函数:

wp_insert_post

插入文章

你可以对其进行改造,默认的功能是会将用户的用户昵称、电子邮件和用户网站发送到正文,你可以将这些删除掉  ,具体可以将“添加表单处理代码”中的62行(详见露兜博客博文)

$post_content = '昵称: '.$name.'
Email: '.$email.'
blog: '.$blog.'
内容:
'.$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 ) {

$comment = get_comment( $comment_ID );

$authorid=get_the_author_meta( "id");

$admin_comment = false; //设置一个布尔类型的变量用于判断该留言的ID是否为楼主(作者)的回复

if($comment->user_id == $authorid){

$author_comment = true;

}

return$author_comment;

}

这段代码添加进到functions.php中

然后在wp_list_comments中找到一个合适的位置,写入判断:

<?php  if (is_author_comment($comment->comment_ID)) :?>

//楼主回复,可以使用图片,或者文字提示下

这样就能够把楼主的回复和其他人的回复区分开了。

4.帖子的排序问题

这些问题解决之后,最后解决一下排序的问题,我们想要像论坛一样,有人顶贴,帖子会被顶起来,这需要使用最后的评论时间来作为判断

将如下代码放入functions.php中

function comment_meta_update($comment_ID) {

// 发布新评论更新commentTime字段值

$comment = get_comment($comment_ID);

$my_post_id = $comment->comment_post_ID;

update_post_meta($my_post_id, 'commentTime', time());

}function comment_meta_delete($post_ID) {

// 删除文章同时删除commentTime字段

global $wpdb;

if(!wp_is_post_revision($post_ID)) {

delete_post_meta($post_ID, 'commentTime');

}

}

add_action('save_post', 'comment_meta_add');

add_action('delete_post', 'comment_meta_delete');

add_action('comment_post', 'comment_meta_update');

在论坛列表中,使用query_posts来控制一下文章的输出:

原理:加入到functions.php中的代码会再文章发布时候,自动添加一个自定义字段

commentTime

记录评论的时间,有新评论时会自动更新时间。下面使用

query_posts

正是使用这一自定义栏目判断,来达到顶帖子的效果。

现在,你明白如何利用wordpress制作一个bbs吗?  当然,wordpress制作出来的是非常简单的bbs,小型的社区也基本上够用啦,并且,还可以扩展一下他的功能,比如安装一下会员相关插件,增加用户等级,称号,积分等等,又比如可以增加一个必须要回复才能显示的内容,这些都是可以达到的。

当然,昨天我发布的一篇文章也许对大家也有用,这里可以附带再说一下:如果你使用了多说,那么你改造的bbs也会被多说给覆盖掉,利用之前发布的代码,在文章插入时,自动关闭多说评论即可

在露兜的那篇文章中找到这段代码:

$status = wp_insert_post( $tougao );

在这段代码下面添加:

$status = wp_insert_post( $tougao );

add_post_meta($status, 'duoshuo_status', 'disabled');

即可在前端发布帖子时,自动关闭多说的评论了。

说了这么多,如果你有兴趣可以自己试一试,等到官网更新之后,欢迎来我们的bbs进行讨论哦!~

(责任编辑:最模板)

wordpress 形式php,将wordpress原生评论改造成论坛形式相关推荐

  1. Element-UI checkbox 如何改造成只可单项选择

    Element UI  提供 checkbox 默认实现多选或者全选全不选择,RadioButton 实现单项选择功能,但是如果是一个列表的情况下,使用checkbox 的样式进行单选的情况还是很多的 ...

  2. php私密留言,WordPress站点增加私密留言评论功能的教程

    WordPress 站点的评论默认情况下都是公开的评论,也就是说只要是审核通过的评论,所有人(包括站长.留言者.游客等)都可以看到这条评论内容.如果我们想要实现只有留言者和站长看到的私密留言评论,那么 ...

  3. 带评论的php文章系统,启用Typecho原生评论系统替代多说

    2017年6月1日起,多说(duoshuo.com)社会化评论系统正式停止提供服务.拾肆自从转入Typecho以来一直未启用系统自带的评论系统,而使用了多说的评论系统. 采用多说可以不限于单独一个站点 ...

  4. Dubbo to Mesh 云原生架构改造方案解析

    作者 | 腾讯云泛互云原生团队 责编 | 屠敏 头图 | CSDN 下载自东方 IC 出品 | CSDN(ID:CSDNnews) Dubbo 是一款高性能的 Java RPC 框架,它除了拥有卓越的 ...

  5. wordpress 数据库_在WordPress中使用数据库

    wordpress 数据库 Out of the box, WordPress provides tons of functions that can be used to interact with ...

  6. WordPress初学者入门教程-WordPress的设置

    本文源自:https://wpeyes.com/wordpress 在侧边栏中,你会看到一个项目 标签设置. 在设置中,有许多项. 重要提示:主题和插件可以向侧边栏菜单系统添加项目.如果你的菜单中有没 ...

  7. wordpress与dz_将WordPress与物联网集成

    wordpress与dz It's IoT Week at SitePoint! All week we're publishing articles focused on the intersect ...

  8. wordpress 多语言插件-wordpress 不同双语言三语言插件

    wordpress 多语言插件,wordpress双语插件对于wordpress多语言网站通常有两种形式,第一种是独立的网络语言,另一种是多种语言但是独立的网站.WordPress多语言插件 自动化的 ...

  9. unity android 分包,Unity以分包(obb)形式集成到安卓原生 我慢慢填坑

    Unity以分包(obb)形式集成到安卓原生 我慢慢填坑 Unity以分包(obb)形式集成到安卓原生 我慢慢填坑 工作中有需要将unity项目集成到安卓原生中,随着工作推进需要分包去发布到googl ...

最新文章

  1. oracle创建简单的包
  2. 最详细的JavaWeb开发基础之java环境搭建(Windows版)
  3. 2018.08.04 cogs2633. [HZOI 2016]数列操作e(线段树)
  4. GDOI2018-《被虐记》
  5. Fence(CF-324F)
  6. 一维数组元素倒置 c语言,实例12 数组中元素的倒置.pdf
  7. [Vue warn]: Error in render: “TypeError: Cannot read properties of undef
  8. 办公软件 -- Office 365免费下载安装
  9. 阿里全国脱贫攻坚先进-万祥军:谋定中国农民丰收节交易会
  10. spring boot大学体育赛事管理系统 毕业设计-附源码180923
  11. 中山マミ - 咲く未来
  12. 問題の解決策 [USACO18JAN]Lifeguards P(题解)
  13. (fym)ssm基于web的教务管理系统 毕业设计261620
  14. ccd摄像机基础知识
  15. 清除 thinkphp跟php的 X-Powered-By
  16. (二)CT医学影像的窗高窗位、CT值(Hu值)
  17. 太阳能热水器两芯液位温度检测
  18. SM30表维护自动更新值
  19. 【STM32H7教程】第78章 STM32H7的QSPI总线基础知识和HAL库API
  20. 鲁棒性Robustness

热门文章

  1. 最近写的一个开源软件——PocketSMS
  2. 【UV打印机】电器之正泰交流接触器
  3. JS中时间对象及其方法(春节倒计时练习)
  4. 条码打印软件如何连接得力条码机打印条形码
  5. 2022下半年软考报名今日开始!来看你所在省份报名时间!
  6. windows编程之画五角星
  7. Arduino ESP32 WiFi定位
  8. window【参考】【F2】Win10隐藏桌面快捷图标箭头
  9. 进程死锁终结者——银行家算法
  10. 滥用 ESI 详解(上)