• http://ja.forums.wordpress.org/topic/154?replies=6
    を参考に、sidebar.php に

    <?php
    $posts = get_posts('numberposts=0&category=1');
    global $post;
    ?>
    <?php if($posts): foreach($posts as $post): setup_postdata($post); ?>
    <li><a href="<?php the_permalink();?>"><?php the_title(); ?></a></li>
    <?php endforeach; endif; ?>

    というコードを入れてみました。
    そうすると、これ自体はうまく動いているものの、
    本文(single.php)が影響を受けてしまい、上記ソースで表示されるリンクどれをクリックしても
    同一の本文しか表示されなくなってしまいました。
    タイトルやURLなどは違う内容が表示されているのに本文だけが同一のものが表示されてしまいます。何故なのでしょうか?

    single.php の本文箇所には

    <?php if (have_posts()) : ?>
    <?php while (have_posts()) : the_post(); ?>
    <?php the_content(''); ?>
    <?php else : ?>
    <?php endif;?>

    というコードを入れています。
    現在テストで3件投稿をしていて、最初のコードにより

    投稿3
    投稿2
    投稿1

    というリンクリストが表示されていますが、
    どれをクリックしても最初に投稿した 投稿1 の本文が
    表示されている状態です。

    なお、single.php の該当の記述を削除すると直ります。
    何度も質問してしまい恐縮ですが、どなたかお知恵を拝借できないでしょうか?

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

2件の返信を表示中 - 1 - 2件目 (全2件中)
  • <?php endforeach; endif; ?>

    <?php endforeach; wp_reset_postdata(); endif; ?>

    にしてみてください。

    トピック投稿者 nandedaro

    (@nandedaro)

    ありがとうございます。
    jim912 さんに教えていただいた方法を試してみましたが結果は同じでした。
    しかし、試行錯誤していると

    <?php if (have_posts()) : ?>
    <?php while (have_posts()) : the_post(); ?>
    <?php the_content(''); ?>
    <?php else : ?>
    <?php endif;?>

    から、肝心の
    <?php the_content(”); ?>
    だけを抜き出してループの外に出すとうまく表示されるようになりました。
    なぜなのか全くわかりませんが、単に

    <?php the_content(”); ?>

    と書くとうまくいきます。
    しかしこれは文法上?用法上間違いでしょうか?
    ほかに不具合が起きてきそうで怖いですが・・・

2件の返信を表示中 - 1 - 2件目 (全2件中)
  • トピック「特定カテゴリの記事一覧をサイドバーに表示したら本文がどの投稿も同じ」には新たに返信することはできません。