サポート » 使い方全般 » 投稿記事・カスタム投稿をまとめた記事一覧

  • 解決済 macro19007

    (@macro19007)


    投稿記事・複数のカスタム投稿を日付順にまとめたアーカイブを作成したいと思っています。

    アーカイブは固定ページで作成しています。

    <dl>
    <dt><?php
    $args = array(
    	'post_type' => array('カスタム投稿A','カスタム投稿B','post'),
    	'showposts' => 50,
    	'orderby'=>'date',
        'order'=>'ASC',
    	);
    ?>
    <?php query_posts($args); ?>
    <?php while ( $wp_query->have_posts() ) : $wp_query->the_post(); ?>
    <dt><?php the_time('Y.m.d'); ?></dt>
    <dd><a href="<?php the_permalink() ?>"><?php the_title(); ?></a></dd>
    <?php endwhile; ?>
    </dl>

    上記で表示は可能なのですが、日付順になってくれません。

    例えば
    投稿日時が
    ●カスタム投稿A-1
    ●カスタム投稿A-2
    ●カスタム投稿B-1
    ●通常投稿-1
    ●カスタム投稿B-2
    ●通常投稿-2
    の順だとします。

    この順番で表示されればよいのですが、実際には
    ●カスタム投稿A-1
    ●通常投稿-1
    ●カスタム投稿B-1
    ●カスタム投稿A-2
    ●通常投稿-2
    ●カスタム投稿B-2
    のように、投稿ごとに日付順となってしまいます。

    単純に日付順に表示するにはどのようにしたらよいか、ご教授いただけますでしょうか。
    よろしくお願いいたします。

2件の返信を表示中 - 1 - 2件目 (全2件中)
  • 私の環境でやってみましたが、きちんと日付順に並びました。
    もしかするとquery_posts自体が何かから影響を受けているのかもしれませんね。

    一度、get_postsでやってみてはいかがでしょうか?

    <?php
    $args = array(
    	'post_type' => array( 'カスタム投稿A', 'カスタム投稿B', 'post' ),
    	'posts_per_page' => 50,
    	'orderby'=>'date',
    	'order'=>'ASC',
    );
    $myposts = get_posts( $args );
    if( !empty( $myposts ) ) :
    ?>
    <dl>
    <?php foreach( $myposts as $post ) : setup_postdata( $post ); ?>
    <dt><?php the_time('Y.m.d'); ?></dt>
    <dd><a href="<?php the_permalink() ?>"><?php the_title(); ?></a></dd>
    <?php endforeach;wp_reset_postdata(); ?>
    </dl>
    <?php endif; ?>

    ちなみに、query_postsの件数指定はshowpostsではなく、posts_per_pageです。
    また、dtの開始タグが重複していたようですので、閉じタグのないdtを削除しています。

    トピック投稿者 macro19007

    (@macro19007)

    ありがとうございます。
    上記コードも試してみましたが、同じ症状でした。

    他の何かが原因かと思い、いろいろ試した結果、Post Types Orderのプラグインが原因だったようです。
    項目のチェックをはずすだけでは、まだ挙動が怪しかったので
    プラグインをOFFにする事で解決できました。

    ありがとうございました。

2件の返信を表示中 - 1 - 2件目 (全2件中)
  • トピック「投稿記事・カスタム投稿をまとめた記事一覧」には新たに返信することはできません。