共计 1517 个字符,预计需要花费 4 分钟才能阅读完成。
明天这一篇,次要是对于上一张的编码实现。为什么我要单路分离出来?因为做事要分先后,明确情理,执行能力确定无误。
wordpress 做的文章存储
==================
在上次咱们曾经看过了 wordpress 的数据库模型(有敌人问我什么是逆向剖析,拿着他人的产品逆向推导这就是逆向剖析),咱们能够很分明的看到数据库对于文章存储的两张表,它们别离存储了文章的主体信息和文章的其余信息,具体的咱们再看看数据库模型:
wordpress 数据库模型
在下面的途中,咱们很显著的看到数据库对于文章的存储次要分为两张表:
- wp_posts1 寄存文章主体信息
- wp_postmeta 寄存文章的附加信息
咱们先看看 wp_posts1 的次要构造:
下面的数据库表,也是依据表生成的 sql 语句,当然正文是我加上去的。
可能看到这里很多敌人说咱们当初只看到了表构造,而且又是你增加的正文,你这想怎么忽悠就怎么忽悠。既然这样,咱们无妨一看数据库。
数据库截图片段
从下面的图中咱们能够看到如下要害信息:
要害信息就和下面的相似了,为什么我筛选这三个:
- 博客的零碎,次要的就是文章存储和多媒体资源存储
- 下面三个别离代表了文章、图片、rar 压缩包
- 下面这个缩略表,刚好提取了目前咱们可能会用到辨别的不同信息
咱们间接剖析下面的数据库表中的字段。
文章
- post_content 个别有内容
- post_status 会有多种状态
- post_type 指向文章 post
- post_mime_type 为空
多媒体文件
- post_content 为空
- post_status 个别是 inherit
- post_type 个别是 attachment
- post_mime_type 个别为具体的文件类型,
- 如:image/png、application/rar
所以依据下面的一些信息,咱们能够开始实现咱们文章零碎上面的文章列表接口了,首先依照老规矩实现 Dao 层:
其实下面的接口咱们能够看到和以前的差不多,毕竟数据库操作就是一些根本的增删改查。没道理的,咱们必须接着实现 mapper,mapper 如下:
咱们下面惟一须要留神的就是咱们的文章查问的时候,必须指定_post_type=’post’_和_post_status=’publish’_,这样咱们首页展现的文章列表就是公开的文章。
每次依照套路来,大家都会晓得我这边 Dao 层实现后,就应该进行 Service 层的操作,那么咱们看下这里咱们的 Service 层是怎么回事。
在下面我这里在一个 Service 层的一个接口写这么多代码?对的,没错,咱们强调的是 Service 层用来做数据驱动,那么咱们须要在 Service 层实现一些根本数据的组织。所以说咱们最初首页的数据如下:
因为后盾数据存储的是富文本,所以咱们能看到有很多网页标签。
光是这样阐明也是没有多少实际意义的,咱们依然须要晒一晒具体的 Controller 的办法的代码,如下:
留神看我下面代码的 Try-Catch 解决,我这里根本指标是保障程序性能失常,不会因为我这边的异样而产生其余错误信息。
那咱们都看到了首页下面的一些数据,那么咱们当初是不是须要查看前端页面的实现呢?此处不用惊恐,前端页面的实现,咱们是不会少的,而且这一期实现后的代码,我也一样会同步到 github。
当初咱们须要的是把前台页面列表加载进去并且实现部分刷新。so,咱们须要先获取到前台页面,具体代码省略,咱们展现外围代码:
当然下面的代码,必须有 jquery、doT.min.js 和 json2.js 能力运行。