Go to top Go to bottom

テーマディレクトリの中の画像を読み込んだり、PHPでファイルを操作したりするには、そのファイルまでのURLやパスが必要になります。テーマのディレクトリのURLを取得するにはget_template_directory_uri()を、パスを取得するにはget_template_directory()を使用します。子テーマを使用する場合の注意についてもまとめます。

用例
  • テーマフォルダに保存した画像を表示する
  • テーマフォルダに保存したPHPファイルを読み込む
関連
  • なし
Codex

テーマディレクトリまでのURLを取得する

WordPressでは、画像やスクリプトファイルの読み込みにURLを使用します。テーマディレクトリ(style.cssのあるディレクトリ)を取得するにはget_template_directory_uri()を使用します。

<?php $uri = get_template_directory_uri(); ?>

この結果、$uriにはたとえば次のようなURLが入ります。

http://localhost/minimalist/wp-content/themes/minimalist

末尾にスラッシュは付きません

たとえばテーマディレクトリにimagesというフォルダをつくって、そこにlogo.pngという画像ファイルを保存したとします(images/logo.png)。この画像を表示するには、次のように記載します。

<img src="<?php echo get_template_directory_uri(); ?>/images/logo.png">

get_stylesheet_directory_uri()も同じディレクトリを返しますが、子テーマでないのならget_template_directory_uri()を使用してください。

テーマディレクトリまでの絶対パスを取得する

サーバ上にあるファイルをPHPで処理する場合、URLではなくパスが必要になる場合があります。テーマディレクトリの絶対パスを取得するには、get_template_directory()を使用します。

<?php $dir = get_template_directory(); ?>

この結果、$dirにはたとえば次のようなパスが入ります。

C:\xampp\htdocs\minimalist/wp-content/themes/minimalist

末尾にスラッシュは付きません

bloginfo()を使用したURL・パスの取得は古いので注意

古いバージョンのWordPressでは、テーマディレクトリのURLをbloginfo( 'template_url' )で、パスをbloginfo( 'template_directory' )で出力していましたが、この使い方は古く、現在は非推奨となっていますので使わないようにしましょう。ほかに、bloginfo( 'stylesheet_url' )bloginfo( 'stylesheet_directory' )も非推奨です。

子テーマから親テーマのディレクトリまでのURL・パスを取得する

子テーマから親テーマのディレクトリのURLを取得する場合も、get_template_directory_uri()を使います。パスの場合も、get_template_directory()を使用します。逆に言うと、これら2つの関数は子テーマ内で読んだとしても親テーマのディレクトリまでのURL・パスを返します

子テーマのディレクトリまでのURL・パスを取得する

上述の通り、get_template_directory_uri()は親テーマのURLを返します。子テーマのディレクトリのURLを取得するには、get_stylesheet_directory_uri()を使用してください。

次の例は、$child_theme_uriに子テーマのディレクトリのURLが、$parent_theme_uriに親テーマのディレクトリのURLが入ります。

<?php 
  $child_theme_uri  = get_stylesheet_directory_uri();
  $parent_theme_uri = get_template_directory_uri(); 
?>

子テーマのディレクトリの絶対パスを取得するには、get_stylesheet_directory()を使用します。

<?php $child_theme_dir = get_stylesheet_directory(); ?>