您的问题和答案可以归结为模板层次结构及其工作原理,了解这里的基本知识非常有用。
由于我需要写一篇短篇小说,所以我不打算详细介绍,但以下是基本内容:
Wordpress使用非常严格的层次结构在特定页面请求上加载模板。此层次结构称为template hierarchy 你会的have to 按照自己的节奏完成。此层次结构保持不变,并且永远不会更改,除非核心开发人员在较新版本中对其进行更改(如在4.3和4.4版本中引入一些新的额外模板),或者通过模板过滤器进行更改。
Wordpress的编码方式是,您需要在其上显示任何页面的唯一模板是index.php
. 此模板是任何页面请求的最终回退模板,是任何给定层次结构中最低的模板。这很可能永远不会改变。
如果找到,将首先加载层次结构中最高的模板,否则将加载层次结构中较低的第一个可用模板。如果没有找到特殊模板,Wordpress将始终加载index.php
. 但是,可以通过提供的特定模板过滤器使用任何其他自定义模板来代替这些模板
特定层次结构中的任何其他模板,除了index.php
(这是一个必备的模板),是最好的模板。它们只是为了方便而存在,并且它们的使用是可选的。这些模板仅用于通过特殊功能或CSS和/或JS效果为特定页面请求在站点前端创建特定的外观。
要全面考虑所有问题,让我们看看您的具体情况。让我们看看template hierarchy for single posts
单篇文章模板文件用于渲染单篇文章。WordPress使用以下路径:
single-{post-type}-{slug}.php
– (从4.4开始)首先,WordPress为特定帖子寻找模板。例如,如果post type是product,post slug是dmc-12,WordPress将查找single-product-dmc-12。php。single-{post-type}.php
– 如果帖子类型是product,WordPress将查找单个产品。php。single.php
– 然后WordPress返回到single。php。singular.php
– 然后回到单数。php。index.php
– 最后,如上所述,WordPress最终会回到索引。php。如您所见,在上述层次结构中,single.php
排名模板高于index.php
, 从那以后single.php
存在于主题中,Wordpress将始终加载single.php
, 而且永远不会index.php
(甚至singular.php
)的单个贴子页(),除非此行为通过single_template
过滤器)。