web-dev-qa-db-ja.com

テンプレートのimagesフォルダにある画像を含めるための最良の方法は何ですか?

テンプレートのimagesフォルダにある画像を含めるための最良の方法は何ですか? get_bloginfo('template_url')を使用してですか?この方法ではPHPで関数呼び出しを保存するので、imagesフォルダへのパスをハードコードする方が良いことがわかりました。

何かご意見は?

5
Amit

最も簡単で簡単な方法は、テーマのfunctions.phpファイルに一意の変数を定義することです。

といった:

<?php
$theme_name_images = get_bloginfo('stylesheet_directory') . '/images/';
?>

前の回答で示唆されたようにクラスは必要ありません。

編集:Viper007Bondが親切に指摘したように、それはbloginfo()の代わりにget_bloginfoであるべきです。

6
john010117

この方法ではPHPで関数呼び出しを保存するので、imagesフォルダへのパスをハードコードする方が良いことがわかりました。

私は間違いなく関数呼び出しについて心配しないであろう、WordPressのオブジェクトキャッシュはあなたのためにそれらすべてのものをキャッシュ処理するでしょう。必要に応じてパスを定数として定義できますが、一般的には気にしません。

私はただします:

<img src="<?php bloginfo('stylesheet_directory')"?>/images/image.png" />

これをに編集しました

<img src="<?php bloginfo('stylesheet_directory');?>/images/image.png" />(上記はエラーになります)

7
Joe Hoyle

@Amit:それは違います。 PHPでは、ほとんどの関数呼び出しはかなり高速です。そのため、パフォーマンスを探しているのであれば、あまり心配する必要はありません。しかし、私はあなたがこれらすべての電話を見てどのように感じているか知っています。それでも、私は決してパスをハードコーディングしたくないでしょう。

テーマでget_bloginfo('template_url')を何度も使用する予定がある場合は、それをfunctions.phpファイルのグローバル変数に割り当ててから、通常は関数呼び出しを参照するすべての場所で参照してください。 amits_template_urlのように、衝突しにくい名前を付けるようにしてください。だからfunctions.phpでこれを行う:

global $amits_template_url;
$amits_template_url = get_bloginfo('template_url');

そしてあなたのテーマの中であなたがget_bloginfo('template_url')を参照しているであろうどこでもそれを参照してください。

2
MikeSchinkel

CSSファイルから画像ファイルをリンクするだけです。つまり、CSSファイルから画像への相対パスを使用できます。これはCSSのみの解決策です。 PHPコードは必要ありません。作業はブラウザによって行われます。

0
hakre

まあ、それはあなたがどんな種類の開発をしているかによって異なります。あなたがプラグイン開発をしているならば、あなたはあなたがurl構造が何であるかについて確実にわからないのであなたが機能を使う必要があります。特定のWebサイトで特定の作業を行っている場合は、それをハードコーディングしても技術的には問題ありませんが、URL構造が変更される可能性が排除されるため、まだお勧めできません。

プラグインやテーマを開発するときはいつでも、プログラムをクラスで構成します。こうすることで、オブジェクトのプロパティとして繰り返しの値を保存することができます(例:WP URLとtemplate_url)。そうすれば、関数を繰り返し呼び出すことなくそれらを素早く使用することができます。

0
John P Bloch