サポート » テーマ » シングルページで画像が表示されない _small.jpg"/>

  • ニュースの記事を3件ずつ表示させるにあたり、カテゴリーページにおいては、
    以下のようなコードを記述して、該当箇所に問題なく画像も表示されています。
    <?php bloginfo(‘url’);?>/wp-content/uploads/<?php echo $post->post_title;?>
    を使って記事タイトルと同じ画像を画像ディレクトリから読み出す方法です。

    <?php query_posts(‘cat=10 &posts_per_page=3&paged=’.$paged); ?>
    <?php if(have_posts()):while(have_posts()):the_post(); ?>
    <div class=”title”><?php the_title(); ?></div>
    <div class=”photo”><img src=”<?php bloginfo(‘url’);?>/wp-content/uploads/<?php echo $post->post_title;?>_small.jpg”/></div>
    <div class=”kiji”><?php the_content(); ?></div>
    <?php endwhile;endif; ?>

    しかしながら、シングルページで、同じコードを記述しても、画像が表示されずに困っております。

    シングルページ用に、どこか書き換えたほうがよいのでしょうか?

    同じようなエラーが出て困った方がいましたら、アドバイスをいただけると助かります。

13件の返信を表示中 - 1 - 13件目 (全13件中)
  • 案外簡単なことだと思いますので
    <img src="<?php bloginfo('url');?>/wp-content/uploads/<?php echo $post->post_title;?>_small.jpg"/>

    この部分が、実際にhtmlが生成されたときにどうなっているか、ブラウザでソースを表示してみるといいと思いますよ。

    トピック投稿者 zawame

    (@zawame)

    kvexさん

    ありがとうございます。

    確かにブラウザのソースを表示して比較すると、
    <div class=”photo”><img src=”<?php bloginfo(‘url’);?>/wp-content/uploads/<?php echo $post->post_title;?>_small.jpg”/></div>
    という画像を表示させる部分が、シングルページだと、<div>〜</div>ごと、
    ごっそり消えてますね….

    しかししかし、その原因が、、分かりません
    同じコードが入っているんですけどね、、、

    いろいろやってみます

    画像を表示させる部分が、シングルページだと、<div>〜</div>ごと、
    ごっそり消えてますね….

    単純に使われているファイルが違うだけでは?修正しているファイル(single.phpとかindex.phpとか)に「これはindexページ」とか文字入れたらどれが適用されているかわかるかな?(単純な方法ですが・・・)

    トピック投稿者 zawame

    (@zawame)

    shokun0803さん

    ご回答ありがとうございます。

    ファイルが違うかどうかを確かめるため文字を入れて確認してみたところ、
    カテゴリページ(news.php)には表示されるもののシングルページ(single.php)には、やはり、おっしゃる通り表示されませんでした。

    しかしながら、このサイトでは、シングルページのテンプレートとしては、single.phpしか
    用意しておらず、サイドバーからのリンクもパーマリンク(<?php the_permalink();?>)を指定しているため、順等であるならシングルページであるsingle.php内に表示されるものと思うのですが,,,,

    うーーん、分かりません……

    あれ?ちょっと待ってください。

    <?php query_posts('cat=10 &posts_per_page=3&paged='.$paged); ?>
    <?php if(have_posts()):while(have_posts()):the_post(); ?>
    <div class="title"><?php the_title(); ?></div>
    <div class="photo"><img src="<?php bloginfo('url');?>/wp-content/uploads/<?php echo $post->post_title;?>_small.jpg"/></div>
    <div class="kiji"><?php the_content(); ?></div>
    <?php endwhile;endif; ?>

    シングルページでもこれですか?

    また、
    ごっそり消えてる<div>~</div>って、imgタグを囲っているdivですかね?そして、そこは消えているのにthe_titleを囲っているdivは生きてるんですか?

    なんかおかしくないですかね?

    トピック投稿者 zawame

    (@zawame)

    そうなんです、おっしゃる通り、

    <div class=”photo”><img src=”<?php bloginfo(‘url’);?>/wp-content/uploads/<?php echo $post->post_title;?>_small.jpg”/></div>

    ここだけ消えてしまうんです。
    ループ内の他の箇所は生きています。

    バグなんですかね??

    まあ、間違いなくsingle.phpが使用されていないのでしょう。アクセスしているアドレスはどんなアドレスになってますか?シングルでアクセスしているつもりが、記事1件だけ表示しているindex.phpなんて落ちじゃないかと?

    トピック投稿者 zawame

    (@zawame)

    確かに、
    各シングルページへのアクセスが
    ../?p=982
    ../?p=1002
    となっており、各投稿記事にリンクしていますね、、
    各記事自体には、画像をアップロードしていないので、
    それが原因かと思いました。ご指摘ありがとうございます。

    現在、このカテゴリ’10’ NEWS のサイドバーは以下のように設定してあるのですが、
    この方法だとシングルページにアクセスしないっぽいですね、、

    <?php query_posts(‘cat=10’); ?>
    <?php if(have_posts()):while(have_posts()):the_post();?>
    <li class=”cat_menu”>
    “><?php the_title();?>

    <?php endwhile;endif;?>

    カテゴリ’10’の記事に対して、NEWSのテンプレートnews.phpを該当させるための設定は、
    どうしたらよいのでしょうか?

    ちなみに、元のNEWSのpage http://zawame.com/?page%20id=107
    では下記の設定にて3件ずつ記事を読んでいます。

    <div class=”newscontents”> 
    <?php query_posts(‘cat=10 &posts_per_page=3&paged=’.$paged); ?>
    <?php if(have_posts()):while(have_posts()):the_post(); ?>
    <div class=”title”><?php the_title(); ?></div>
    <div class=”photo”><img src=”<?php bloginfo(‘url’);?>/wp-content/uploads/<?php echo $post->post_title;?>_small.jpg”/></div>
    <div class=”kiji”><?php the_content(); ?></div>

    <?php endwhile;endif; ?>

    何か基本的な問題のようで、お手数おかけします、、すみません

    この状態のシングルページで
    <?php query_posts('cat=10 &posts_per_page=3&paged='.$paged); ?>
    これは、ちゃんと動作するのかな?前後関係がわからないのでなんとも言えないですけど。

    トピック投稿者 zawame

    (@zawame)

    どうも該当記事には飛んでいるもののsingle.phpのテンプレートを使えていないようです。title やcontent を非表示にしても利いていません。

    一連をもう一度整理させていただくと、
    http://zawame.com/

    http://zawame.com/?page id=107
    内に記述されたカテゴリ’10’に属する記事タイトル名からパーマリンクによってアクセスする各記事ページがシングルページのテンプレートの影響を全く受けていないようです。

    リンク箇所の記述は以下です。
    ①index.php内のシングルページへのリンク設定部分
    <?php $posts=get_posts(‘numberposts=3 & category=10’); ?>
    <?php if ($posts):foreach($posts as $post):setup_postdata($post); ?>
    <p>“><?php the_excerpt(); ?></p>
    <?php endforeach; endif; ?>

    ②news.php(page id=107が使うテンプレート)内に読み込んだテンプレートsidebar-news.phpのシングルページへのリンク設定部分

    <?php query_posts(‘cat=10’); ?>
    <?php if(have_posts()):while(have_posts()):the_post();?>
    <li class=”cat_menu”>
    “><?php the_title();?>

    <?php endwhile;endif;?>

    これら2つのリンク設定から表示されるページが、なんかしらのテンプレートを読んでいるのでしょうが、シングルページの影響を受けていないようなのです。

    長々、すみませんが、
    どなたか、お分かりでしたらご教授いただけたら幸いです。

    とりあえず、すべてのテンプレートに「これは○○」と入れてどのファイルが使われているか確認してみましょうよ;)
    page.phpとかが使われていそう…

    それがいいかもですね。
    私も最初の頃(というか、深みにはまるといまでも)よくやります。

    echo "これは : single.php <br />\n";

    みたいなのを最初に入れるような感じ。

    トピック投稿者 zawame

    (@zawame)

    kvexさん
    shokun0803さん

    おかげさまで問題が分かりました。

    ご両者のサジェスティチョン通り、コンテンツのテンプレートとsingleページの分岐の各場所に
    ダミーを入れてテストしてみました。

    すると、意外なところに謎を発見しました。
    このNEWS記事のカテゴリーidは’10’で記事を投稿してあるのですが、
    singleページに分岐させてあったid’10’の子カテゴリ、
    id ’16’のテンプレートを読み込んでいました。

    下記のcat=10を設定している箇所を→16に変更して無事表示です!

    <?php if(in_category(’10’)):?>
    <?php query_posts(‘cat=10 &posts_per_page=3&paged=’.$paged); ?>
    <?php if($posts):foreach($posts as $post):setup_postdata($post);?>
    <div class=”title”><?php the_title(); ?></div>
    <div class=”photo”><img src=”<?php bloginfo(‘url’);?>/wp-content/uploads/<?php echo $post->post_title;?>_small.jpg”/></div>
    <div class=”kiji”><?php the_content(); ?></div>
    <?php endforeach;endif; ?>

    なぜ、’16’のものを読んでしまうのかは分かりかねますが、
    とにかく解決です!
    おつきあい頂きありがとうございます!

13件の返信を表示中 - 1 - 13件目 (全13件中)
  • トピック「シングルページで画像が表示されない _small.jpg"/>」には新たに返信することはできません。