web-dev-qa-db-ja.com

テーマフォルダーにあるファイルのURLを取得する方法

テーマフォルダーにある画像のURLを取得する方法はありますか?または、テーマフォルダーのURLを取得しますか?

6
Andrey Rudenko

drupal_get_path() を使用して、テーマフォルダーへのパスを取得できます。

_$path = drupal_get_path('theme', 'name_of_theme');
_

そこから、次のように特定のファイルを指定できます。

_$image_path = $path . '/images/image.jpg';
_

path_to_theme() を使用することもできますが、このコンテキストからの戻り値は、呼び出されたコンテキストに応じて変化する可能性があるため、注意が必要です。

アクティブなテーマまたはテーマ別の実装を処理するモジュールを指すことができます。たとえば、テーマ呼び出しのスコープ内で呼び出された場合、テーマ関数が処理される場所によって異なります。モジュールから実装されている場合は、モジュールを指します。アクティブなテーマから実装された場合、アクティブなテーマを指します。テーマ呼び出しの範囲外で呼び出されると、常にアクティブなテーマを指します。

18
Clive
$imgurl = file_create_url(path_to_theme().'/images/blah.png');

説明:このコード行は、path_to_theme()を使用してテーマへのパスを取得し、次にfile_create_url()を使用してファイルのURLを作成し、テーマフォルダーにある画像のURLを取得します。オペレーションの要求に応じて)

私はそれを説明しないことへの反対票を得たので、あなたはそこにいます:-)

それも、受け入れられた回答と同じですが、より完全にするためにコメントが適用されています。現在のテーマのテーマフォルダーを参照しているため、主にテーマテンプレート内で役立ちます。

6
commonpike

Drupal 8

global $base_url;
$theme = \Drupal::theme()->getActiveTheme();
$image_url = $base_url.'/'. $theme->getPath() .'/images/image.jpg';
0
Mike