扩展主题

当您的站点使用主题时,您可以在站点的模板文件夹中替换部分主题。对于任何给定的主题模板,您可以覆盖其中的单个块,或替换整个模板。如果网站模板和主题模板发生冲突,则网站模板优先。无论主题模板是否发生冲突,主题模板都可以从theme_name/templates/.

🔗替换模板

当网站模板和主题模板具有相同的路径时,例如templates/page.htmlthemes/theme_name/templates/page.html,将使用网站模板。这就是您可以为主题替换整个模板的方法。

🔗覆盖一个块

如果你不想替换整个模板,而是覆盖其中的一部分,你可以扩展模板并重新定义一些特定的块。例如,如果您想覆盖title主题的 page.html 中的块,您可以在站点模板中创建一个 page.html 文件,其中包含以下内容:

{% extends "theme_name/templates/page.html" %}
{% block title %}{{ page.title }}{% endblock %}

如果您扩展page.html而不是theme_name/templates/page.html具体扩展,它将扩展站点的页面模板(如果存在),否则扩展主题的页面模板。这使得可以从站点模板覆盖主题的基本模板,只要主题模板不在模板路径中对主题名称进行硬编码即可。例如,主题中的子模板应该使用{% extends 'index.html' %},而不是{% extends 'theme_name/templates/index.html' %}