サポート » 使い方全般 » query_postsの並び順

  • 解決済 dxc555

    (@dxc555)


    下記のソースで試しているのですがorderを「ASC」「DESC」どちらでやっても
    新しい記事から表示されてしまいorderが無視されております。

    <?php query_posts($query_string . '&posts_per_page=5&cat=1&orderby=date&order=ASC'); ?>
    <?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
    <?php the_time('y.n.j') ?>
    <?php the_content(); ?>
    <?php endwhile; endif; ?>
    <?php wp_reset_query(); ?>

    調べてみたのですが同様の事例もないようで困っているのですがどのようにすれば
    いいものでしょうか?

    また、クエリーの解除についてですがどちらを用いるべきでしょうか?

    <?php wp_reset_query(); ?>
    <?php query_posts($query_string); ?>

    試したところどちらでもOKなようなのですがなんだか気になります・・・

4件の返信を表示中 - 1 - 4件目 (全4件中)
  • query_posts自体の書き方が間違っているようではなさそうです。
    そのコードを書いているファイル自体が読み込まれていないということは
    ありませんか?
    index.phpを直してうまくいかず、実はcategory.phpやarchive.php
    が呼ばれていた・・・というのは、ありがちな失敗です。

    それから、ちょっと脱線しますが・・・
    <?php global $wp_query;?>
    を入れたほうが良いかと。(書いてないだけかもしれませんが)

    クエリーの解除については、wp_reset_query();を使うべきです。
    ソースを読んで確認したわけではありませんが、
    query_posts($query_string);を使うと、おそらくデータベースを
    無駄に1回読み込みに行きます。

    トピック投稿者 dxc555

    (@dxc555)

    お返事ありがとうございます。リセットの件参考になりました!

    あああ
    <?php global $wp_query;?>
    <?php query_posts($query_string . '&posts_per_page=5&cat=1&orderby=date&order=ASC'); ?>
    いいい
    略・・・

    で試しましたが上下の文字は表示されているので間違いないかと思うのですが
    謎です・・・

    これってもしかして別のループが既に存在しているとかじゃありませんか?試してみたんですが、これでASC、DESCとも動きます。

    <?php query_posts('posts_per_page=5&orderby=date&order=DESC'); ?>
    <?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
    <?php the_time('y.n.j') ?>
    <?php the_title(); ?>
    ...
    <?php endwhile; endif; ?>
    <?php wp_reset_query(); ?>

    ちなみにスティッキーポスト(一番上に常に表示されるポスト)があると、それは常に一番最初になります。

    トピック投稿者 dxc555

    (@dxc555)

    お返事ありがとうございます。
    再インストールしいろいろ試したのですが原因がわかりました!
    「Post Types Order」のプラグインを有効にするとこのような現象になるようです。
    とりあえずこれを外すことでなんとか回避することができましたのでご報告を!

4件の返信を表示中 - 1 - 4件目 (全4件中)
  • トピック「query_postsの並び順」には新たに返信することはできません。