サポート » 使い方全般 » 記事一覧を表示させたいんですが・・・

  • archive.phpにて過去の記事(過去の記事タイトル)を表示させるページを作りたいんですが、うまくいきません。index.phpでは6月1日 新たなウーロン茶発売
    など、日付とタイトルがあれば出力されているのですが

    <div id=”main_news”>

      <li class=”news”><span>
      <?php the_time(‘y/m/d’); ?>
      </span>
      <?php wp_get_archives(“type=postbypost”);?>

    </div>

    これで、下のようになってしまいました。タイトルはでるんですが日付ごとにでませんし
    レイアウトがindex.phpにあるのと違います。
    6月1日 
    新たなウーロン茶発売
    新たなお茶発売
    おいしいお茶発売
    美味しく飲める茶発売

    理想はindex.phpのとは違いますがこんなかんじのレイアウトにしたいです。
    <?php wp_get_archives(“type=postbypost”);?>を入れる場所によってレイアウトが
    変わってしまうのでよくわかりません。どうしたらいいでしょうか?

    6月1日 
    新たなウーロン茶発売
    新たなお茶発売
    6月30日 
    おいしいお茶発売
    美味しく飲める茶発売

6件の返信を表示中 - 1 - 6件目 (全6件中)
  • えぇっと、やり方は別として、なぜ期待通りにならないのかと言えばですね:

    6月1日 ← the_time(‘y/m/d’) が出力した
    新たなウーロン茶発売 ← ここから
    新たなお茶発売
    おいしいお茶発売
    美味しく飲める茶発売 ← ここまでは wp_get_archives(“type=postbypost”) が出力した

    ということになります。つまり(関数の使い道が間違っているいないは別として)the_time()は1度しか呼ばれていないので、最初に日付が出て終わり、ということになります。

    また、the_time() は、現在ポイントされているエントリの日付を持って来る関数です。index.phpで言えば、the_post() が「今はこれだよ」とポイントしていることになります。ですので、最も簡単にロジックを考えたいのであれば、index.php のコピーを archive.php にして、不要な箇所(例えば本文とか)を削除していけば、少なくとも日付→題名のリストは作る事が出来ると思いますし、構造の勉強にもなると思います。

    トピック投稿者 rockfun

    (@rockfun)

    ありがとうございます。
    index.phpから移動してやったり
    <?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
    をつけてみたり、date関数にしてみたりとやってみたんですが、どうもうまくいきません。
    次の日付が表示されないんです。
    新たなお茶発売の次の行に6月30日ともってきたいのですが・・・・・

    <?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
    <div id=”main_news”>

    </div>
    <?php endwhile; else: ?>
    <p>記事はありません。お探しの記事は見つかりませんでした。</p>
    <?php endif; ?>

    トピック投稿者 rockfun

    (@rockfun)

    コピペ間違えました。下記です。

    </div>
    <?php endwhile; else: ?>
    <p>記事はありません。お探しの記事は見つかりませんでした。</p>
    <?php endif; ?>

    まず、コードは code でくくってくださいね。
    こういうのは出来ましたか?

    6月1日
    新たなウーロン茶発売
    6月1日
    新たなお茶発売
    6月30日
    おいしいお茶発売
    6月30日
    美味しく飲める茶発売

    トピック投稿者 rockfun

    (@rockfun)

    できていないです。 wp_get_archives(“type=postbypost”)によってレイアウトが変わります。
    タイトルのタグなくても wp_get_archives(“type=postbypost”)でタイトルまででるし、どこに wp_get_archives(“type=postbypost”)をいれたらいいんでしょうか?

    実はwp_get_archives()はアーカイブリストは作りますが、実際の中身はないんです。気がついて欲しかったんですが、この関数は単に「リスト作成」のための関数で、例えばメニューとかに並べたい時に使う…というものです(だからエントリのタイトル「しか」でない)。

    ですので、日付を並べて、かつ、タイトルを出すというのであれば、get_posts()を使った方がよろしいかと思います。ループの直前で

    $posts = get_posts( array( .... ) );

    とやっておき

    foreach( $posts as $p ) {
    setup_postdata( $p );
    echo $p->post_date;
    echo '<br />';
    echo $p->post_title;
    echo '<br />';
    }

    とやれば、ひとつ前の回答と同じ結果が得られると思います。

6件の返信を表示中 - 1 - 6件目 (全6件中)
  • トピック「記事一覧を表示させたいんですが・・・」には新たに返信することはできません。