Wordpress如何为博客文章生成HTML


How Wordpress Generates HTML for Blog Posts

我正试图弄清楚Wordpress是如何处理博客文章的,这样我就可以在我的web应用程序中实现类似的功能。这可能是一些基本的php,但我似乎找不到确切的方法!

通常,您有一个类似http://www.example.com/blog/2012/01/27/some-title的URL。我知道http://www.example.com/blog/2012/01/27/some-title/index.php文件不存在。Wordpress采取的操作路径是什么?为了生成博客文章的html,需要设置哪些php设置?它是否与丢失/无效url路径的404错误页面有关?

Wordpress所做的——实际上是许多流行的MVC框架——是使用apache.htaccess文件将所有流量路由到单个Front Controllerwikipedia脚本。所请求的URL的组成部分然后被框架/CMS分解,以确定应该执行什么控制器来返回所请求的内容。它如何确定将请求路由到哪里的基本细节因框架而异。

前端控制器通常会处理错误显示,并且它(或确定的控制器)能够决定请求的资源是否真的存在。

因此,执行的路径将类似于:

  1. 生成请求
  2. 将请求路由到相应的控制器
  3. 执行/调用控制器-或者-如果请求的资源不存在,则显示错误

我相信Wordpress实际上吸收了ALL流量,并将其指向前控制器。对于对PHP编程或.htaccess规则知之甚少的普通Wordpress用户来说,这是非常棒的。但是,通常建议允许引用服务器上实际存在的文件或目录的请求仍然可以通过.htaccess文件中的条件进行访问,而不是像所有其他请求一样将它们路由到前端控制器。

这是由一个名为.htaccess的文件完成的您可以在此文件中定义多种类型的规则,也可以定义重定向。这种结构的logig是为了使填充了GET参数的url更加友好。

例如:yourdomain.com/blog

在.htaccess中设置某些规则实际上会调用例如:

yourdomain.com/index.php?p=博客

你可以谷歌.htaccess,或者这里有一个简单的例子:http://www.blogstorm.co.uk/htaccess-mod_rewrite-ultimate-guide/

wp_query上的codex条目提供了一个有用的摘要。

简短的版本是:

  • 正如其他答案所提到的,WordPress用.htaccess中的规则来解释"漂亮的永久链接"
  • 然后$wp_query获取查询变量,计算出您想要的内容,并从数据库中获取内容
  • 结果被抛出到The Loop中,其中显示每个检索到的帖子