サポート » 使い方全般 » 相対パスでは画像は表示されないのでしょうか。

  • 解決済 isseiaone

    (@isseiaone)


    こんにちは。

    サイトのトップページにバナーの画像を張ろうと思い、
    imageフォルダに画像をアップしたのですが表示されません。

    <img src="images/picproducts.jpg" />

    相対パスでは表示されないのでしょうか。
    ちなみに絶対パスだと表示はされましたが気になったので質問させていただきます。

    でも、cssで背景画像を指定する時は、
    background-image:url("images/960border_01.gif");
    な感じで表示されるから同じかなと思ったんですが。。。
    何故なんでしょうか。

    お力添えのほどよろしくお願いいたします。

6件の返信を表示中 - 1 - 6件目 (全6件中)
  • topページに
    <img src="images/picproducts.jpg" />
    を書いてそれを生かそうと思ったら
    トップページから見たimagesディレクトリに画像を置かないとだめですね。
    きっと、テーマディレクトリのimagesにおいてるんですよね?
    css内のbackground-image:url("images/960border_01.gif");は、そのcssファイルを基準にした相対ディレクトリです。

    もし、テーマディレクトリ/images に画像をアップしたものを生かすなら
    <img src="<?php bloginfo('stylesheet_directory'); ?>/images/picproducts.jpg" />
    などとする必要があります。

    kvexさん

    いつもお世話になります。
    よーくわかりました。ありがとうございました。

    ちなみに頂いた下記の記述の、
    <img src="<?php bloginfo('stylesheet_directory'); ?>/images/picproducts.jpg" />

    (‘stylesheet_directory’) ←なんですが、

    昨晩たまたま調べながらやっていたら、
    (‘template_url’)←こんなのを見つけたので、
    <img src="<?php bloginfo('template_url'); ?>/images/picproducts.jpg" />
    に書いてみたら画像が表示されました。

    (‘template_url’)←の中身はどんな風に使い分ければよいのでしょうか。
    また、今回の私の質問ケースでkvexさんが(‘stylesheet_directory’)とした理由も教えていただけませんでしょうか。

    何度もスイマセンがよろしくお願いします。

    ちょっと疑問に思った時はワリと Codex が助けてくれます。

    template_url:親テーマのフォルダ
    stylesheet_directory:子テーマのフォルダ(子テーマでなくてもOK)

    使用しているテーマが子テーマかどうかに関わらず
    「今使ってるテーマのあるフォルダ」を指定するなら
    stylesheet_directory が吉◎

    ※より新しくてクールな書き方をするなら bloginfo でなくて get_stylesheet_directory_uri() を使います。

    楽チン子テーマを駆使して「親テーマのフォルダにある画像」を指定するなら
    template_url です。

    ※より新しくてクールな書き方をするなら bloginfo でなくて get_template_directory_uri() を使います。

    kzさん

    いつもお世話になってます。

    早速質問させてください。
    質問1.
    bloginfoの代わりに、get_stylesheet_directory_uri() ということは、

    <?php get_stylesheet_directory_uri() ?>/images/picproducts.jpg" />

    になるのでしょうか。

    この書き方だとbloginfoの書き方に比べ何にたけているのでしょうか。
    是非教えてください。

    質問2.

    初歩的な話なのかも知れませんが、
    「親テーマのフォルダと子テーマフォルダ」ここが理解できていません。
    親テーマと子テーマ??。。テーマは通常1つしか利用しないものだと思っていたのですが
    どんな風に親テーマと子テーマは使い分けるものなんでしょうか。

    になるのでしょうか。

    echo します。
    <?php echo get_stylesheet_directory_uri() ?>/images/picproducts.jpg" />

    bloginfoの書き方に比べ何にたけているの

    Codex にある説明から察してあげると、WordPress としてはテーマのフォルダのパスを取得したいなら bloginfo 的なことはもう古くさいので、新しく用意した関数を使って欲しいとのことです。

    get_bloginfo の実装を見ると、

    function get_bloginfo( $show = '', $filter = 'raw' ) {
      switch( $show ) {
        (略)
        case 'stylesheet_directory':
          $output = get_stylesheet_directory_uri();
          break;
        case 'template_directory':
        case 'template_url':
          $output = get_template_directory_uri();
          break;

    と結局当該関数を使ってるので、はじめからこの関数を使えば処理時間がちょびっとだけ速くなります。

    親テーマのフォルダと子テーマフォルダ

    そんなときこそ Codex: 子テーマ

    kvexさん、kzさん

    返信大変遅れてしまい申し訳ございません。

    Codexを読んであれこれテストして要約わかりました。
    ありがとうございました。

    とてもわかりやすかったです。

    今後ともよろしくお願いします。

6件の返信を表示中 - 1 - 6件目 (全6件中)
  • トピック「相対パスでは画像は表示されないのでしょうか。」には新たに返信することはできません。