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を取得する」ものではあります。
役割が別れているとはいえ、初心者だと混同しがちなのでしっかり区別して使えるようになりましょう。
コメント