サポート » 使い方全般 » カスタムフィールドの値で並べ替えたい

  • 解決済 keitaxxxxx

    (@keitaxxxxx)


    カスタム投稿に優先度を付け、その順で表示したいと思い、
    カスタムフィールドを作り、その順で表示したいのでですが、下記のコードでは上手くいきません。
    <?php
    $args = array(
    ‘paged’ => $paged,
    ‘post_type’ => ‘test’,
    ‘taxonomy’ => ‘testtax’,
     ’field’ => ‘slug’,
    ‘terms’ => $term,
    ‘meta_key’ => ‘yusen’,
    ‘orderby’ => ‘meta_value_num’,
    );
    ?>`

    上記のコードで’yusen’にそれぞれ違う数字が入っている場合は思った通りの順で並んで全て表示されるのですが、’yusen’の数字が重複してる場合、重複した投稿の一つしか表示されません。
    例)
    投稿1のyusen=1
    投稿2のyusen=1
    投稿3のyusen=3
    この場合、投稿3と投稿1しか表示されません。
    数字が重複した場合も全ての投稿を表示したいのですが、どのようにしたら良いのでしょうか?

2件の返信を表示中 - 1 - 2件目 (全2件中)
  • 以下のコードで検証しましたが再現しませんでした。投稿1〜3がぜんぶ表示されます。テーマは Twenty Sixteen、プラグインは WP Multibyte Patch と他少しが有効です。

    <?php
    $args = array(
    	//	'paged' => $paged,
    	'post_type' => 'test',
    	//	'taxonomy' => 'testtax',
    	//	'field' => 'slug',
    	//	'terms' => $term,
    	'meta_key' => 'yusen',
    	'orderby' => 'meta_value_num',
    	//	'order' => 'DESC',
    );
    $the_query = new WP_Query( $args );
    echo "\n<ol>";
    while ( $the_query->have_posts() ) {
    	$the_query->the_post();
    	echo "<li>", get_the_title(), "</li>";
    }
    echo "</ol>\n";
    wp_reset_postdata();
    ?>

    もしかすると、ループの中で読み飛ばしてしまっていませんか?

    gblsm 様
    ご指摘の通り、ループの中での問題でした。
    確認し、解決しました。

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

2件の返信を表示中 - 1 - 2件目 (全2件中)
  • トピック「カスタムフィールドの値で並べ替えたい」には新たに返信することはできません。