与include('header.php')相比,使用get_header()有什么优势吗?


11

基本主题-实际上是我看过的每个主题-都使用get_header()来包含头文件,但是我看不出这样做的任何理由。

使用get_header()而不是简单的优点是include('file.php')什么?


3
我知道这很不合时宜,但我经常看到include('some-file.php');-不需要括号,这是一种语言构造!include 'some-file.php';做得还不错,加上国际海事组织看起来也更整洁;)
TheDeadMedic 2010年

Answers:


18

使用通用函数意味着丢弃WP API层:

  • get_header 钩子不见了;
  • 与通过名称("header-{$name}.php")获取不同标头的兼容性将消失;
  • 的使用locate_template()将消失,可能会破坏与子主题的兼容性。

您始终可以查看源代码,以确切了解功能的作用。

WordPress不仅仅是因为使用了自己的功能。通常是出于具体兼容性或功能性原因。


我一直在用php include语句代替头文件,get_header这解释了为什么我会得到一些奇怪的行为。
马特2010年

2

您也可以使用get_header()函数获取其他头文件。将自定义头文件命名为header-whatever.php,然后使用

get_header('whatever');

并且WP将使用header-whatever.php文件而不是header.php。

请注意,语法有点奇怪-您认为应该将文件名放在其中,但是不可以-您只需要在连字符后加上名称即可。我想要现在的那一小时:(


哦!该死的连字符。当您知道自己救了几个小时后,也许会减轻您的生活吗?:)

0

主要原因是可以挂接到get_header,这意味着您可以在子主题或单独的功能文件中进行header-y的操作,而无需编辑父主题文件。

您不想编辑父主题文件,因为这样会使升级它们变得更加困难,因为您随后需要重新应用所做的更改。如果将这些更改隔离在子主题中,则使升级MUCH更容易

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.