サポート » テーマ » カテゴリ並び順を昇順から降順に変更したい

  • 解決済 smartdimple

    (@smartdimple)


    MegaNews というテーマを利用しているのですが、
    このテーマではトップページのメインカラムにすべてのカテゴリから一番新しいポストを1つずつ表示するようになっています。
    そのときのカテゴリの並びがカテゴリ名の昇順になっているのですが、これを降順に変えるには

    <?php
    $categories = get_categories(‘hide_empty=1’);
    foreach ($categories as $category) :
    query_posts($query_string. ‘showposts=1&orderby=date&cat=’.$category->cat_ID);
    if (have_posts()) : the_post();
    ?>

    このPHPコードをどのように変更したらよいでしょうか。
    どなたか御存知の方が居ましたら、教えて頂けると幸いです。
    それでは。

5件の返信を表示中 - 1 - 5件目 (全5件中)
  • query_postsにorder=DESCを追加すれば降順になります。

    codexを参照すると、色々と方法がわかると思いますよ。
    codex

    query_posts($query_string. 'showposts=1&orderby=date&cat='.$category->cat_ID);
    のなかに order=DESC を加えることは既に試していたのですが、うまく行きませんでした。
    検索してみると&order=DESC といった使い方が多かったため、~ &orderby=date ~ のすぐ後ろに ~ &orderby=date&order=DESC ~ と入れてみたのですが、表示順は変わりませんでした。
    order=DESC を入れ込む場所や記述の仕方が違うんでしょうか…

    foreachで繰り返して1件ずつ表示するコードなので、order=DESCは意味がないですね。
    考え方としては、$categories = get_categories('hide_empty=1');でカテゴリーを変数に代入しているので単純にこの順番で表示されているのでしょうから、この順番をひっくり返せば出来るのではないでしょうか。
    試していませんが、上記コードの直後で$categories = array_reverse($categories);とか効きませんかね?

    order=DESC をかける場所は、query_posts ではなくて、 get_categories だと思います。

    http://codex.wordpress.org/Function_Reference/get_categories

    php-webさんの助言に従って
    $categories = get_categories('hide_empty=1');
    のなかに
    $categories = get_categories('hide_empty=1&order=DESC');
    と追加してみたことろ、
    いままでうんともすんとも並びが変わらなかったカテゴリ順が
    見事、降順に並び変わりました!

    pfcjpさん、shokun083さん、php-webさん、
    貴重なお時間を使って助言して下さり、本当に有難うございました。

5件の返信を表示中 - 1 - 5件目 (全5件中)
  • トピック「カテゴリ並び順を昇順から降順に変更したい」には新たに返信することはできません。