get_template_directory()vs bloginfo( 'template_directory')vs TEMPLATEPATH


16

私はこの記事を読んでいた:一般的なワードプレスの開発の間違いをし、どのようにそれらを修正するために、その中に、これらの著者は言います:

テーマの場所の取得:TEMPLATEPATHまたはbloginfo( 'template_directory')を使用している場合。やめる!上記の例で見られるように、非常に便利なget_template_directory()を使用する必要があります。

しかし、彼は詳しく説明していません。何がそんなに悪いのbloginfo()

回答:


17

長い話を短くするために:get_bloginfo( 'template_directory' )そしてget_bloginfo( 'template_url' )単に戻るget_template_directory_uri()

したがって、後者のテンプレートタグを直接参照するだけで、2番目の呼び出しをショートカットできます。

のソースを参照してくださいget_bloginfo()

他のいくつか:

  • 'url' => home_url()
  • 'wpurl' => site_url()
  • 'stylesheet_url' => get_stylesheet_uri()
  • 'stylesheet_directory' => get_stylesheet_directory_uri()
  • 'locale' => get_locale()

編集

また、:TEMPLATEPATHSTYLESHEETPATHdeprecationが予定されているので、それぞれをget_template_directory()get_stylesheet_directory()で置き換えてください。

編集2

再:このコメント

ちょうど私が言っていたこと:)。get_template_directory()パスとget_template_directory_uri()URL を返す追加します。したがって、著者は一貫性がありません:異なるものget_bloginfo( 'template_directory' )get_template_directory()返します!

ソースに戻って参照してください:)

case 'template_directory':
case 'template_url':
    $output = get_template_directory_uri();
    break;

再:このコメント:

get_stylesheet_directory()明示的に使用する必要がある子テーマを開発する際の注意点。私が間違っている場合、誰かが私を修正します。

本当ですが、常にそうです。get_bloginfo()に関連するものは何も返しませんget_stylesheet_directory()。それだけを返すget_stylesheet_uri()get_stylesheet_directory_uri()


子テーマを開発する際の1つの注意点は、get_stylesheet_directory()を明示的に使用する必要があることです。私が間違っている場合、誰かが私を修正します。
スティーブ

ありがとう!WPには、別の関数を呼び出すだけのこれらの関数がたくさんあるので、使用しないことになっているのではないかと思うのですが
...-coopersita

この場合、その理由は単にget_bloginfo()パラメーターに対する下位互換性を維持するためだと思います。
チップベネット
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.