サポート » 使い方全般 » カスタム投稿の記事ループをorderby等で追加ソートできない。

  • 解決済 ForestRiver

    (@forestriver)


    初投稿です。よろしくお願いします。
    wordpressも使用歴が浅いです。アドバイスいただければ幸いです。
    カスタム投稿の記事ループをorderby・orderで追加ソートできないんです。
    <?php $loop = new WP_Query( array(
     ’orderby’=>’ID’,
     ’order’=>’ASC’,
     ’post_type’ => ‘sample’,
     ’posts_per_page’ => 10) ); ?>

    <?php if (have_posts()) : ?>
    <?php while (have_posts()) : the_post(); ?>
    <?php
    echo get_post_meta($post->ID, ‘name’, true);



    ?>

    こんな感じでarchive-sample.phpに書いたのですが、
    結果がorderby・orderを追加する前と同じです。
    echo get_post_meta($post->ID, ‘name’, true);はカスタムフィールドの値をとってきています。

    どうしてでしょうか?

3件の返信を表示中 - 1 - 3件目 (全3件中)
  • モデレーター jim912

    (@jim912)

    ループの書き方が違います。
    WP_Queryを用いた場合は、have_posts, the_postは、クラスメソッドのhave_posts, the_postを利用する必要があります。

    Class Reference/WP Query Usage

    トピック投稿者 ForestRiver

    (@forestriver)

    <?php $loop = new WP_Query( array(
     ’orderby’=>’ID’,
     ’order’=>’ASC’,
     ’post_type’ => ‘sample’,
     ’posts_per_page’ => 10) ); ?>

    <?php if (have_posts()) : ?>
    <?php while ( $loop->have_posts()) : $loop->the_post(); ?>
    <?php
    echo get_post_meta($post->ID, ‘name’, true);



    ?>
    こう書き直しました。すみません動きません。画面が真っ白に...

    プラグインで Custom Field Suite を使用し
    カスタムフィールドを作成し、
    ($post->ID, ‘name’, true) の name の部分でフィールドの項目名を指定して
    出力させています。
    クラスメソッドのhave_posts, the_post を使用した際は、
    どのように echo get_post_meta($post->ID, ‘name’, true); の部分を
    書いたら良いのでしょう?
    そのままでよいのでしょうか?

    トピック投稿者 ForestRiver

    (@forestriver)

    ありがとうございます!!できてました。
    <?php if ($loop->have_posts()) : ?>
    <?php while ( $loop->have_posts()) : $loop->the_post(); ?>

    で正解だったのですが、直前に合ったコメントの文が邪魔をしていたみたいです。
    ご協力ありがとうございます。
    まさかコメントが影響するとは思ってませんでした。

3件の返信を表示中 - 1 - 3件目 (全3件中)
  • トピック「カスタム投稿の記事ループをorderby等で追加ソートできない。」には新たに返信することはできません。