include( 'header.php')よりもget_header()を使用する利点は何ですか?


11

基本的なテーマ(実際、これまでに確認したすべてのテーマ)では、ヘッダーファイルをインクルードするためにget_header()を使用していますが、そうする理由はありません。

get_header()シンプルなものの代わりに使用する利点は何include('file.php')ですか?


3
私はこれが話題から外れていることを知っていますが、あまりにも頻繁に見られますinclude('some-file.php');-括弧の必要はありません、それは言語構成です!include 'some-file.php';IMOも
すっきりし

回答:


18

ジェネリック関数を使用すると、WP APIのレイヤーが破棄されます。

  • get_header フックはなくなります。
  • 名前("header-{$name}.php")で異なるヘッダーを取得する互換性はなくなります。
  • の使用はlocate_template()なくなり、子テーマとの互換性が失われる可能性があります。

常にソースを見て、関数が正確に何を行うかを確認できます。

WordPressは、それだけではなく独自の機能を使用します。通常、これは具体的な互換性または機能上の理由によるものです。


代わりにphp includeステートメントを使用して代替ヘッダーを呼び出してきましたがget_header、これがなぜ私が奇妙な動作をしているのかを説明しています。
マット

2

get_header()関数を使用して、別のヘッダーファイルを取得することもできます。カスタムヘッダーファイルにheader-whatever.phpという名前を付けて、

get_header('whatever');

WPはheader.phpの代わりにheader-whatever.phpファイルを使用します。

構文が不安定であることに注意してください-代わりにファイル名をそこに置くべきだと思いますが、そうではありません-ハイフンの後にのみ名前が必要です。私は私の人生のその時が今戻って欲しい:(


ああっ!いまいましいハイフン。たぶん、あなたが誰かを数時間救ったことを知っているとき、それはあなたの一日を明るくするでしょう?:)

0

主な理由は、get_headerにフックできることです。つまり、親テーマファイルを編集せずに、子テーマまたは別の関数ファイルでheader-yを実行できます。

親テーマファイルは、変更を再適用する必要があるため、アップグレードが難しくなるので編集しないでください。これらの変更が子テーマに分離されている場合、はるかに簡単にアップグレードできます

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.