WordPressでテーマ開発をしているとき、よく混同されがちな home_url() と get_template_directory_uri()。
他によく似たものもいくつかあり、どの関数が何をしているかわからなくなってしまいますよね。
この記事では
- home_url
- get_template_directory_uri
- get_stylesheet_directory_uri
の違いをまとめました。
WordPressパス取得系の関数の違い

大まかに言うと、home_urlはサイトトップページのURLを取得してくれ、get_template_directory_uri, get_stylesheet_directory_uriはディレクトリ(フォルダ)までのパスを取得してくれます。
トップページのURLを生成するhome_url
home_urlは、サイトトップページのURLを取得してくれます。
<a href="<?php echo home_url(); ?>">トップページに戻る</a>このように使うことが多いです。
なお、home_urlは各ページへのURLを生成するときにも使われます。
<a href="<?php echo home_url('/posts'); ?>">記事一覧</a>と書くと、
<a href="https://domain.com/posts">記事一覧</a>のようにURLを生成してくれるものです。
リンクを貼るときはhome_url
テーマディレクトリまでのパスを生成するget_template_directory_uri、get_stylesheet_directory_uri
get_template_directory_uri、get_stylesheet_directory_uriはどちらとも利用しているテーマが置かれているディレクトリ(フォルダ)までのパスを生成してくれます。
ただし、get_template_directory_uri は親テーマのディレクトリを、get_stylesheet_directory_uriは子テーマのディレクトリを指し示します。
例えば「sample」というテーマを利用している場合、
<?php echo get_template_directory_uri(); ?>とすると
https://domain.com/wp-content/themes/sampleが取得できます。
ページのURLを取得するhome_urlと違い、各種テーマ内のファイルが置かれている場所を示すURLが取得できるんですね。
- 画像の埋め込み
- CSSやJavaScriptファイルの読み込み
などに利用されます。
<img src="<?= get_template_directory_uri(); ?>/images/logo.png">画像やCSSなどを呼び出すときはget_template_directory_uriもしくはget_stylesheet_uri
まとめ
home_url、get_template_directory_uri、get_stylesheet_uriはどれも「URLを取得する」ものではあります。
役割が別れているとはいえ、初心者だと混同しがちなのでしっかり区別して使えるようになりましょう。

コメント