028
テーマ・親テーマおよび子テーマのディレクトリのURL、またはパスを取得する
Library
テーマディレクトリの中の画像を読み込んだり、PHPでファイルを操作したりするには、そのファイルまでのURLやパスが必要になります。テーマのディレクトリのURLを取得するにはget_template_directory_uri()を、パスを取得するにはget_template_directory()を使用します。子テーマを使用する場合の注意についてもまとめます。
| 用例 |
|
|---|---|
| 関連 |
|
| 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(); ?>
テーマまでのパスについて、全然分からなかったので、とても参考になりました。