投稿記事の下に同じカテゴリの新着5件とかを表示したい。
アイキャッチとかはいらないので、テキストだけでさらっとできないかな。
できた。
さらっとではないけど。
記事ページのテンプレート(○○.php)に書く
<?php
$post_id = get_the_ID();
foreach((get_the_category()) as $cat) {
$cat_id = $cat->cat_ID ;
break ;
}
query_posts(
array(
'cat' => $cat_id,
'showposts' => 5, //5件表示するから5って書く
'post__not_in' => array($post_id)
)
);
if(have_posts()) :
?>
<ul> <!--リストタグで表示させる-->
<?php while (have_posts()) : the_post(); ?>
<li><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></li> <!--タイトルにリンク付きで表示-->
<?php endwhile; else: ?>
<li>記事がなかったときはこれが表示される</li>
<?php endif; ?>
</ul>
<?php wp_reset_query(); ?>
自分のページに合わせて体裁を整えてみる
<div class="クラス名"> <!--全体をdivで囲っておく-->
<h3><?php the_category(' | '); ?>の最新5件</h3> <!--タイトルなんかを付けてみる-->
<?php
$post_id = get_the_ID();
foreach((get_the_category()) as $cat) {
$cat_id = $cat->cat_ID ;
break ;
}
query_posts(
array(
'cat' => $cat_id,
'showposts' => 5, //5件表示でOK
'post__not_in' => array($post_id)
)
);
if(have_posts()) :
?>
<ul>
<?php while (have_posts()) : the_post(); ?>
<li><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></li>
<?php endwhile; else: ?>
<li>このカテゴリの記事はまだ追加されていません。</li> <!--もっともらしいコメントにする-->
<?php endif; ?>
</ul> <!--ulタグを忘れず閉じる-->
<?php wp_reset_query(); ?>
</div> <!--divタグを忘れず閉じる-->
全体をdivで括ったのは、後々デザイン変更するとき便利だなぁと思ったから。
どうやら、通常は投稿記事ページのテンプレート「single.php」とやらがあるらしい。
カスタマイズするのに適したテーマというのもあるらしい。
自分の使ってるテーマには「single.php」なんてもの存在してない。
そういうこともある。
カスタマイズする気もなかったので、気に入ったテーマ使ってた。
ところが、複雑な構造で作られてるテーマを選んでたみたい。
逆に言えば、カスタマイズしなくていいように作られたもの。
それでも、使っていくうち、こうしたいという希望がでてくる。
出てくるんだわ。
テンプレートを特定。
さて、テンプレートの特定はできたけど、記事ページ専用じゃない。
ここに書いたものは、トップページにもカテゴリページにも表示されとる。
をぃ!(汗)
一瞬トップページの記事一覧がボロボロな表示になったので焦った。
なので記事ページだけに出るように条件分岐を追加。
<?php if ( is_single() ) : ?>
記事ページだけに表示させてくだされ。
<?php endif; ?>
やっと言うこと聞いてくれた。
解決
教訓:テーマによって記事ページの表示されるテンプレートが違ったりする