基于Underscores开发WordPress主题:自定义文章类型页面侧边栏与页脚来源查询
问题描述
我正在使用Underscores开发WordPress主题,创建了名为project的自定义文章类型,对应的示例URL为:http://a.site.local/projects/a-beauty/。我的template-parts/目录下存在content-projects.php文件,内容如下:
$ cat template-parts/content-projects.php <h1>Project</h1>
当我访问http://a.site.local/projects/a-beauty/时,页面显示了标题,但同时也出现了侧边栏和页脚——而这两者并未在content-projects.php或index.php中定义。请问这些组件是从哪里加载的?
解答
这是WordPress模板层级机制和Underscores主题基础结构共同作用的结果:
- 模板回退逻辑:访问自定义文章类型
project的单篇内容时,WordPress会优先查找single-project.php模板文件。如果主题中没有这个文件,会依次回退到single.php、index.php来渲染页面。 - 侧边栏与页脚的来源:Underscores主题默认的
single.php(以及page.php这类基础模板)中,包含了get_sidebar()和get_footer()两个核心函数——它们分别负责加载主题根目录下的sidebar.php和footer.php文件,你看到的侧边栏和页脚就是这两个文件输出的内容。 - content模板的定位:
content-projects.php只是基础模板在循环内部调用的内容片段,仅负责输出文章核心内容,页面的整体框架(头部、侧边栏、页脚)由外层的基础模板控制。
如果想移除该自定义文章类型单页的侧边栏和页脚,可通过以下方式实现:
- 创建
single-project.php模板文件,在文件内仅调用头部和content-projects.php,不添加get_sidebar()和get_footer(); - 在
functions.php中通过条件判断,当访问project单页时取消侧边栏输出。
内容的提问来源于stack exchange,提问作者Gaut
相关产品推荐
相关产品推荐

