スポンサーリンク

get_template_directory_uriが子テーマで効かないときの原因と対処法

スポンサーリンク
Cocoonカスタマイズ

WordPressでテーマのカスタマイズを行っていると、テーマディレクトリまでのURLを取得するのにget_template_directory_uri()関数を使用します。

しかし、この関数を子テーマを使用するとうまく効きません。

今回は子テーマでget_template_directory_uriのようにテーマディレクトリまでのURLを取得する方法をご紹介します。

原因

get_template_directory_uri()関数は「親テーマ」のディレクトリを返す

get_template_directory_uri()関数は親テーマのディレクトリを返すため、子テーマのカスタマイズで子テーマ内のファイルを参照するとうまく効きません。

意図して親テーマ内のファイルを参照する場合には有効です。

例えば、WordPressテーマのCocoonの子テーマでget_template_directory()をechoしてみます。

<?php echo get_template_directory()?>

この結果は以下のように出力されます。

cocoon-masterが親テーマフォルダですので、親テーマのディレクトリがget_template_directory_uri()で出力されていることがわかりました。

get_template_directory_uriが効かないときの対処法

get_stylesheet_directory_uri()を使用する

get_stylesheet_directory_uri()関数は名前の通り「スタイルシートのURLを返す」関数ですが、

子テーマが使用されている場合は、子テーマのルートディレクトリを返す」という仕様があります。

この関数を使用することで、子テーマ内のファイルを適切に使用することができます。

もちろん、あえて親テーマ内の資源を使用したい場合はget_tenplate_directory_uri()を使用します。

まとめ

WordPressの子テーマでルートディレクトリを出力するにはget_stylesheet_directory_uri()を使えば実現できます。

get_template_directory_uriとの使い分けに注意して、お好みのカスタマイズを実現してくださいね。

タイトルとURLをコピーしました