テーマディレクトリまでのURLを取得する get_stylesheet_directory_uri() と get_template_directory_uri() の違いを徹底解説
WordPressのテーマ開発で、テーマディレクトリ内においた画像やCSS、JavaScriptまでのURLを書くことはよくあります。テーマを開発するとまではいかなくても、子テーマを作ってデザインを少しだけ調整するなんていうかたも多いのではないでしょうか。そんなときに使うget_template_directory_uri() という関数がWordPressには用意されています。ところが、似たような関数でget_stylesheet_directory_uri() という関数もあります。この記事では、get_template_directory_uri() とget_stylesheet_directory_uri() の違いを実例つきで詳しく解説いたします。
この2つの関数の役割の違い
get_template_directory_uri() とget_stylesheet_directory_uri() の違いは、子テーマをつかっているときに影響してきます。get_template_directory_uri() は、有効化しているテーマもしくは親テーマのテーマディレクトリURLを取得し、get_stylesheet_directory_uri() は、有効化しているテーマのテーマディレクトリURLを取得します。
具体的にみていきましょう。
https://sample.comというサイトで、テーマ「Parent」を有効化しているとします。
1. <?php echo get_template_directory_uri(); ?> 2. <?php echo get_stylesheet_directory_uri(); ?>
で出力される結果は
1. https://sample.com/wp-content/themes/parent 2. https://sample.com/wp-content/themes/parent
となり、同じ結果が出力されます。
次に、同じサイトで、テーマ「Parent」に子テーマ「Child」を作って、「Child」を有効化しているとします。
1. <?php echo get_template_directory_uri(); ?> 2. <?php echo get_stylesheet_directory_uri(); ?>
で出力される結果は
1. https://sample.com/wp-content/themes/parent 2. https://sample.com/wp-content/themes/child
というようになります。
末尾にスラッシュを忘れなように
上述の結果からもわかるとおり、末尾にスラッシュは出力されません。
たとえば、テーマディレクトリ内にimages というフォルダをつくって、そこにlogo.png というファイル名の画像ファイルを保存したとします。この画像を表示するには、次のように記載します。
<img src="<?php echo get_template_directory_uri(); ?>/images/logo.png">