当前位置: 首页 > 编程笔记 >

在WordPress中加载模板文件的正确方法

巢权
2023-03-14
本文向大家介绍在WordPress中加载模板文件的正确方法,包括了在WordPress中加载模板文件的正确方法的使用技巧和注意事项,需要的朋友参考一下

从WordPress 3.0开始,有一个名为的函数get_template_part(),该函数已在新的二十零默认WordPress主题中使用了很多。这是通过使用诸如get_header()包含header.php文件之类的功能来包含部分主题的通常方法的演变。此功能通过将相同文件包含多个文件来帮助代码重用,而且还允许子主题覆盖父主题。

该函数将必需的段和可选名称作为参数,这两个参数一起使用以选择要包括的正确模板文件。描述此功能如何工作的最好方法是显示其在某些情况下的工作方式。下面的调用get_template_part()仅使用slug参数。

get_template_part('foo');

这将在主题目录中查找名为的文件,foo.php并将其加载到放置函数调用的模板中。如果您使用的是子主题,则它将首先在子主题目录中查找,然后在父主题目录中查找。这样做的结果是,您可以覆盖父主题的某些部分,而不必在周围复制很多文件,只需在子主题中创建所需的文件,此功能便会首先加载它们。

第二个参数(称为名称)用于定义您要抓住的更具体的模板文件。以下调用同时get_template_part()使用slug和name参数。

get_template_part('foo', 'bar');

首先,在当前主题目录中查找一个名为foo-bar.php的文件,如果该文件不存在,则它将查找一个名为foo.php的文件。如果当前主题是子主题,则它将在子目录中以相同顺序查找文件,然后在父目录中以相同顺序查找文件。为了清楚起见,按以下顺序查找文件。

  1. /wp-content/themes/themechild/foo-bar.php

  2. /wp-content/themes/themechild/foo.php

  3. /wp-content/themes/themeparent/foo-bar.php

  4. /wp-content/themes/themeparent/foo.php

此功能的另一个用途是为主题的同一部分创建多个部分。例如,您可能希望以不同的方式打印当前正在查看的页面的内容,在这种情况下,您可能想要执行类似的操作。

if (is_singular()) {
    get_template_part('single');
} else {
    get_template_part('multi');
}

在这种情况下,如果正在查看的页面是单个页面(例如,单个帖子或页面),则将single.php被加载,否则将multi.php被加载。

此功能最有用的功能之一是,它意味着您不必在主题代码中使用include()或require()调用函数,但是此外,您可以允许人们将您的主题用作父主题并应用自己的自定义部分,而无需必须编辑您的主题。

 类似资料:
  • 如何确认我的JAR文件已加载到Coldfusion中?我在CF10上。 我目前得到这个错误: 我的网站结构如下: 在我的申请中。cfc,我有以下代码: 这是我调用一切的代码: 更新#1 我在检查administor时发现了设置摘要,其中列出了服务器Java类路径。我添加了jar文件的位置并重新启动了服务器。即使路径存在于Administrator中的类路径中,我仍然会遇到相同的错误。 更新2 添加

  • 本文向大家介绍深入解析WordPress中加载模板的get_template_part函数,包括了深入解析WordPress中加载模板的get_template_part函数的使用技巧和注意事项,需要的朋友参考一下 最近研究官方主题 Twenty Eleven ,有一些东西网上现成的中文资料不好找,在博客里记载下来,算是分享,也算是备忘,wordpress 3.0 以后就开始便有了get_temp

  • 问题内容: 我在这里浏览了一下,但没有找到有关最佳文件权限的任何详细信息。我也看了看一些的WordPress的形式的问题,在[这里也]不过任何人说建议777显然需要在安全一点教训。 简而言之,我的问题是这个。我应该具有以下权限: 存放所有WordPress内容的根文件夹 管理员 wp内容 wp-includes 然后每个文件夹中的所有文件? 问题答案: 设置WP时,您(Web服务器)可能需要对文件

  • 本文向大家介绍WordPress主题制作之模板文件的引入方法,包括了WordPress主题制作之模板文件的引入方法的使用技巧和注意事项,需要的朋友参考一下 get_template_part() 用来引用模板文件,类似于 get_header()、get_sidebar() 和 get_footer(),只不过这个 get_template_part() 可以引入自定义名字的文件。 使用方法 参数

  • 模板加载器 模板加载器是加载基于抽象模板路径下,比如 "index.ftl" 或 "products/catalog.ftl" 的原生文本数据对象。 这由具体的模板加载器对象来确定它们取得请求数据时使用了什么样的数据来源 (文件夹中的文件,数据等等)。当调用 cfg.getTemplate (这里的 cfg 就是 Configuration 实例)时, FreeMarker询问模板加载器是否已经为

  • 问题内容: 我正在尝试将CS​​V文件加载到AngularJS中,以便可以对内容进行一些操作。它不是我想要的那样工作。为了测试它是否正确加载,我将其加载到文本区域中以查看内容。 当我加载文件时,它说它已正确加载,但在加载第二个CSV文件之前似乎没有触发onload()事件,在这种情况下,FIRST文件显示在文本区域中。 HTML: JS: 当我将其放入JSFiddle时,该文件根本不会出现在tex