今回はWordPressでテーマディレクトリのURLを取得する方法を紹介します。
結論を言うと、get_template_directory_uri
を使ってテーマディレクトリまでのURLを取得することができます。
数あるWordPress関数の中でも多くの方が利用する関数だと思うので、より深く理解してサイト作りに活かしていきましょう。
目次
get_template_directory_uri()の使い方
まずは実際に使い方を見てみましょう。
画像のリンクを指定する際にget_template_directory_uri
を使用した例です。
<img src="<?php echo get_template_directory_uri(); ?>/assets/images/logo.png" alt="">
get_template_directory_uri()に引数はありません。
取得できるのはテーマフォルダまでのURIなので、その後のパスは関数の後に追加で記述します。
その際、get_template_directory_uri()は最後に「/(スラッシュ)」を含まないので、「/」から書き始めるようにしましょう。
この記述でブラウザ側には下のようなコードで表示されます。
<img src="http://○○○/wp-content/themes/△△△/assets/images/logo.png" alt="">
○○○はドメイン、△△△はテーマ名なのでご自分の環境によって異なります。
ブラウザで画像が表示されているか確認しましょう。
定数化しておくと便利
get_template_directory_uri()はとても便利な関数ですが、関数名が少し長くて記述しにくいと感じませんか?
私は毎回「get_template_directory_uri()」と記述するのは少し記述しにくいと感じるので、定数化してその定数をコードに記述しています。
functions.phpに下のコードを記述すると定数化することができます。
define('MY_THEME_DIR_URI', get_template_directory_uri());
phpの関数、define()を使用して定数を定義します。
define()の引数は以下の通りです。
- 第一引数 – 定数名
- 第二引数 – 値
この定数化によってコードは下記のようになります。
<img src="<?php echo MY_THEME_DIR_URI; ?>/assets/images/logo.jpg">
再利用しやすくなるので、もし記述しにくいと感じる方はこの方法を取り入れてみてください。
get_template_directory_uri()はどんな関数?
WordPress公式サイトの開発者向けリソースにはこのように書かれています。
Retrieves template directory URI for the active theme.
get_template_directory_uri() | Function | WordPress Developer Resources
上記を翻訳すると、「アクティブなテーマのテンプレートディレクトリのURIを取得します。」となります。
テーマフォルダ内の画像やファイルのURLを記述する際に使用します。
なぜget_template_directory_uri()を使用するのか?
静的なサイト制作の場合は絶対パスや相対パスで画像やファイルを表示することができますが、WordPressの場合は好ましくありません。
理由は、ドメインやテーマの名前が変わる可能性があるからです。
ドメインとは・・・
「https://○○○/〜」左記サイトURLの中で、ドメインは「○○○/〜」の部分です。
WordPressの場合、開発環境と本番環境、またはテスト環境でドメインが異なりますし、テーマを配布する場合も考えるとさまざまなドメインの環境に適応させる必要があります。
この時、直接URLで記述していたらパスのすべての記述を書き換える必要がありますし、相対パスの場合は表示されない可能性があります。
一方、get_template_directory_uri()を使用すればドメインやテーマが変更されたとしても自動的にURLを生成してくれるので変更の手間はありませんし、URLが通らず表示されないということもありません。
その都度その環境に合ったURLを指定するために、get_template_directory_uri()を活用する方法が最善と考えられます。
まとめ
今回はWordPressでテーマディレクトリのURLを取得する方法を紹介しました。
ディレクトリまでのURLはget_template_directory_uri関数で取得できますが、絶対パスや相対パスではなく、この関数を使用する理由は理解できたでしょうか?
理解できるととても便利なWordPress関数なので、ぜひ有効活用してサイト制作をしていきましょう。
ぜひ便利な活用方法も試してみてください。
その他の記事
【WordPress】CSSとJavaScriptをfunctions.phpで読み込もう
今回はWordPressで自作テーマを作成する際のfinctions.phpでCSSをJavaScr…
【WordPress】タクソノミー、ターム、カテゴリー、タグの違い…
今回はWordPressでWeb制作をする際に出てくる「タクソノミー」「ターム」「カテゴリー」「タグ…
【WordPress】front-page.phpとhome.phpとindex.phpの違いは…
今回はWordPressで開発する際に使用するテンプレートファイル、「front-page.php」…