サポート » 使い方全般 » 開いている記事を除いて同カテゴリの新着記事を表示

  • 解決済 twenty three

    (@twenty-three)


    単一記事(loop-single.php)を開いている時に、
    開いている記事を除いた同カテゴリの新着記事を表示したいです。

    現在は

    $myposts = get_posts(‘numberposts=5&category=1’);
    foreach($myposts as $post) :
    ※数字は適当です。

    を使用していますが、これだと表示中のページも一覧に並んでしまいます。
    postのIDを取得してそれのみ除外(?)とかできるのでしょうか?

    宜しくお願いいたします。

4件の返信を表示中 - 1 - 4件目 (全4件中)
  • exclude を使うと指定した ID を除外してくれるみたいです。
    ここを参考にしてみて下さい。

    トピック投稿者 twenty three

    (@twenty-three)

    お返事ありがとうございます。

    お教えいただいた exclude を使用しようとしたら
    ループが延々と続くようになってしまって、元の形に戻したら
    今度は the_content の中身が表示中の記事と同じ内容になってしまいました。。。

    調べてみたら、query_posts で the_content のそれぞれの内容が出てくるとわかったので、その通りやってみたら、またループが延々と続きます。

    表題の件以前の問題になってしまいましたが、loop-single.php内で同カテゴリーをループで
    表示させることはできないのでしょうか?

    以下はコードです。
    記事を開いている時に同じカテゴリ(カテゴリID1)のループを表示します。
    loop-single.php

    <?php if ( have_posts() ) while ( have_posts() ) : the_post(); ?>
    <div id="post-<?php the_ID(); ?>" <?php post_class(); ?>>
      投稿内容
    </div><!-- #post-## -->
    <div class="cate">
      <?php /* ループを開始します。 */ ?>
      <?php
        global $query_string;
        query_posts($query_string . '&posts_per_page=3&cat=1' );
      ?>
      <?php if (have_posts()) : while (have_posts()) : the_post(); ?>
      <div class="date"><?php echo date("Y年m月d日", strtotime($post->post_date)); ?></div>
      <h3 class="entry-title"><?php the_title(); ?></h3>
      <div class="entry-content"><?php the_content(); ?></div>
      <?php endwhile; endif; ?>
    </div>
    <?php endwhile; // end of the loop. ?>

    上記はループで躓いていますが、さらにこれに
    「表示中の記事は除く」処理を行いたいです。

    宜しくお願いします。

    <?php $current_id = get_the_ID();
    $myposts = get_posts('numberposts=5&category=1&exclude=' . $current_id );
    if ($myposts) :
    	foreach( $myposts as $post ) :
    		setup_postdata( $post ); ?>
    		<div class="date"><?php echo date("Y年m月d日", strtotime($post->post_date)); ?></div>
    		<h3 class="entry-title"><?php the_title(); ?></h3>
    		<div class="entry-content"><?php the_content(); ?></div>
    <?php endforeach; endif; ?>

    これでいけるかな

    トピック投稿者 twenty three

    (@twenty-three)

    思い描いていた通りの表示になりました!
    phpわからないなりに色々試してみてまったく動かなくて
    途方に暮れていたので本当に本当に助かりました。

    知らない関数(?)が入っていたり、なぜいただいたコードでちゃんと
    動くのかまったくわからないので精査してみます。

    ほんとうにほんとうにありがとうございます!

4件の返信を表示中 - 1 - 4件目 (全4件中)
  • トピック「開いている記事を除いて同カテゴリの新着記事を表示」には新たに返信することはできません。