案外簡単なことだと思いますので
<img src="<?php bloginfo('url');?>/wp-content/uploads/<?php echo $post->post_title;?>_small.jpg"/>
この部分が、実際にhtmlが生成されたときにどうなっているか、ブラウザでソースを表示してみるといいと思いますよ。
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ページ」とか文字入れたらどれが適用されているかわかるかな?(単純な方法ですが・・・)
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は生きてるんですか?
なんかおかしくないですかね?
そうなんです、おっしゃる通り、
<div class=”photo”><img src=”<?php bloginfo(‘url’);?>/wp-content/uploads/<?php echo $post->post_title;?>_small.jpg”/></div>
ここだけ消えてしまうんです。
ループ内の他の箇所は生きています。
バグなんですかね??
まあ、間違いなくsingle.phpが使用されていないのでしょう。アクセスしているアドレスはどんなアドレスになってますか?シングルでアクセスしているつもりが、記事1件だけ表示しているindex.phpなんて落ちじゃないかと?
確かに、
各シングルページへのアクセスが
../?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); ?>
これは、ちゃんと動作するのかな?前後関係がわからないのでなんとも言えないですけど。
どうも該当記事には飛んでいるものの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";
みたいなのを最初に入れるような感じ。
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’のものを読んでしまうのかは分かりかねますが、
とにかく解決です!
おつきあい頂きありがとうございます!