[图]wordpress模板路由 前台访问页面的对应关系

在我们入门wordpress的主题之后,我们脑海中一定开始产生一个问题:我们创建的这些主题文件到底是怎么工作的?比如我创建了一个archive.php和category.php,有什么区别和联系呀。本文就来解开你心中的疑惑。

在wordpress中有一个路由机制(overview),它根据QueryString来判断当前的页面是文章页还是列表页,最终确定用哪一个主题文件作为呈现界面的后台文件。但在最后一步的过程中,还有一个选择的问题,也就是说存在一种可能,虽然WP想用一个文件作为overview的呈现,但这个文件又不存在,所以WP就找一个文件来代替它。这个代替不是随便代替的,而是有严格的规则,下面这张图来自WP官方,能够形象的说明这个规则:

来源:WordPress官方文档

我们从左往右看图片,从上到下用虚线分为不同的路由入口,例如当前页面的$is_404=1时,就准备使用404.php,但如果404.php不存在的话,直接使用index.php作为呈现。其他页面也是同样的道理,在上面的庞大体系中,archives是最值的关注的,这这图正好帮我们理解了archive.php和category.php之间的关系,即:如果该页面是分类(is_category)的话,那么先找对应的category-$slug.php作为呈现,如果没有,就找category-$id.php,如还没有再找category.php,仍然没有,用archive.php,如果连archive.php都没有的话,就用index.php了。

但是对于一般的主题来说,我们不可能对所有的分类都给一个模板,相反,我们常常希望文件越少越好。所以有人总结出来,较为简单直观的overview,如下:

通过本文的了解,相信你已经对这个问题把握的比较好了。

0

评论0

请先

没有账号? 注册  忘记密码?

社交账号快速登录