• 解決済 scanner0928

    (@scanner0928)


    いつも勉強させていただいております。

    今回は、複数のカスタム投稿において、
    それらを一つにし、「最新の更新」として10件を表示する際、
    その並びがきちんと並ばず、頭を悩ませています。

    <?php
    $arg = array(
    ‘post_type’ => array(‘news’,’monitor’,’post’),
    ‘orderby’ => ‘post_date’
    ‘showposts’ => 100
    );
    ?>
    <?php $posts = get_posts($arg); ?>
    <?php foreach($posts as $post): ?>

    としましたが、投稿日時で並ばず、
    どう見てもランダムな並びのようなのです。

    ‘orderby’ => ‘post_id’ にすると、
    IDの古い順にきちんと並びますが、’order’=> が効きません。。。

    こちら、ポストを取ってくる方法が悪いのでしょうか。
    ご教示いただきましたら幸いです。

3件の返信を表示中 - 1 - 3件目 (全3件中)
  • 何が原因でしょうね?
    単純に配列のカンマが抜けてるとかだったら解決が早いのですが。
    こちらの環境(WP 3.5.2)では以下のコードで普通に表示されたので、ちょっと試してみて下さい。

    <?php
    $args = array(
    	'post_type' => array('news','monitor','post'),
    	'orderby' => 'date',
    	'posts_per_page' => 100
    	);
    ?>
    <?php
    $custom_query = new WP_Query( $args );
    if ( $custom_query->have_posts() ):
    while ( $custom_query->have_posts() ) :	$custom_query->the_post();
    ?>
    
    	<p><?php the_time('Y-m-d H:i:s'); ?>: <?php the_title(); ?></p> 
    
    <?php endwhile; endif; ?>
    <?php wp_reset_query(); ?>

    カスタムループの書き方は日本語Codexを参照:関数リファレンス/wp reset query

    追記:
    よく見たらorderbyの引数指定がおかしいんじゃないですかね。
    orderbyの引数を’date’にしてみたらどうでしょう?
    参考:テンプレートタグ/query posts

    さらに追記:
    showposts引数も既に非推奨になってるので代わりに「posts_per_page」を使うようにした方が良いですね。

    トピック投稿者 scanner0928

    (@scanner0928)

    t_okubo様

    早速のレス、ありがとうございます!
    いただいたコードを参考にし、これから少し格闘してみます。

    まずは御礼まで。

    トピック投稿者 scanner0928

    (@scanner0928)

    返答が遅くなりました。

    結果、正常表示できました。
    原因は、ある固定ページの表示で使っていたプラグイン、
    「Intuitive Custom Post Order」が影響していたようです。
    固定ページにて任意の順に並べる必要がありましたが、
    まずはこちらをOFFにて正常表示ができましたので、ご報告致します。

    t_okubo様、アドバイスありがとうございました。

3件の返信を表示中 - 1 - 3件目 (全3件中)
  • トピック「複数のカスタム投稿を一括して最新10件を表示したい」には新たに返信することはできません。