WordPressのテーマを触っていると、CSSや画像、JavaScriptを読み込みたい場面がよく出てきます。
そんなときに使うのが get_template_directory_uri() です。
名前が長くて難しそうですが、やっていることはとてもシンプルです。
get_template_directory_uri() とは何か?
get_template_directory_uri() は、現在使っているテーマフォルダのURLを取得するテンプレートタグです。
簡単に言うと、
「このテーマが置いてある場所のURLを教えてくれる」
関数です。
どんなときに使う?
主に次のような場面で使います。
- CSSファイルを読み込む
- JavaScriptファイルを読み込む
- 画像ファイルのURLを指定する
テーマ内のファイルを指定するときの
基本中の基本です。
どのファイルで使う?
以下のような場所で使われます。
- header.php
- footer.php
- index.php
- functions.php
- その他テンプレートファイル
「テーマ内のファイルを使いたい」
と思ったら、ほぼ出番があります。
基本的な使い方
画像を表示する例
<img src="<?php echo get_template_directory_uri(); ?>/images/sample.jpg" alt="">これで、
- 使用中のテーマフォルダ
- その中の images フォルダ
- sample.jpg
を正しく指定できます。
CSSファイルを読み込む例
<link rel="stylesheet" href="<?php echo get_template_directory_uri(); ?>/css/style.css">JavaScriptファイルを読み込む例
<script src="<?php echo get_template_directory_uri(); ?>/js/main.js"></script>なぜ直接URLを書かないの?
初心者がやりがちな書き方がこれです。
<img src="/wp-content/themes/mytheme/images/sample.jpg">この書き方だと、
- テーマ名を変えた
- サイトURLが変わった
- サブディレクトリに移動した
ときに、一気に壊れます。
get_template_directory_uri() を使えば、
- 環境が変わっても
- テーマ名が変わっても
URLを自動で正しく取得してくれます。
よくある勘違い
get_template_directory_url ではない
よく間違えられますが、
- ❌ get_template_directory_url
- ⭕ get_template_directory_uri()
です。
WordPressでは
URLは uri、サーバー上のパスは path
と覚えておくと混乱しません。
似た関数との違い
get_stylesheet_directory_uri() との違い
- get_template_directory_uri()
→ 親テーマのURL - get_stylesheet_directory_uri()
→ 子テーマのURL
子テーマを使っている場合は、
get_stylesheet_directory_uri() を使うことが多いです。
初心者のうちは、
親テーマ → template
子テーマ → stylesheet
くらいの理解でOKです。
実務での使われ方
実務では、CSSやJavaScriptを直接書くよりも、functions.php で読み込むことが多いです。
function my_theme_scripts() {
wp_enqueue_style(
'style',
get_template_directory_uri() . '/css/style.css'
);
}
add_action('wp_enqueue_scripts', 'my_theme_scripts');
このように、他のテンプレートタグと組み合わせて使われることがほとんどです。
よくあるミス
echo を忘れる
<img src="<?php get_template_directory_uri(); ?>">これだと何も表示されません。
取得系の関数なので、echo が必要です。
まとめ
- get_template_directory_uri() はテーマフォルダのURLを取得する
- 画像・CSS・JS指定で必須
- 直接URLを書くより安全
- echo を忘れない
- 子テーマでは別の関数を使うことがある
初心者がテーマカスタマイズをする上で、
最初に覚えるべきテンプレートタグの一つです。
関連記事
- テンプレートタグとは?
- get_stylesheet_directory_uri() とは?
- wp_enqueue_style とは?
- functions.php とは?
- 子テーマとは?

コメント