本文へ移動

WP_Query基礎

WordPressの記事を新しい順・古い順に並べる方法
|WP_Queryのorderbyとorder

WordPressの記事一覧を新しい順や古い順に変えたいときは、orderbyで並べる基準、orderで向きを指定します。まず日付順の最小例を確認し、タイトル順やカスタムフィールド順へ広げます。

Huddly Huddly 投稿日: 2026年8月21日 更新日: 2026年8月24日 読了目安: 5分

新しい順・古い順はorderbyとorderで決める

WordPressの記事を新しい順にするには、orderbydateorderDESCにします。古い順ならorderASCへ変えます。orderby何を基準にするかorderどちら向きに並べるかを決めます。

orderbyは、何を基準に並べるかを選ぶ指定です。投稿日ならdate、タイトルならtitle、更新日ならmodifiedを使います。カスタムフィールドの値を基準にする場合は、meta_keyと値の型も指定します。

新しい順・古い順にする方法

WP_Queryで並び順を変えたいとき、まず混乱しやすいのが orderbyorder の名前です。どちらも「並び順」に関係するため、最初は同じように見えます。

ただし、役割ははっきり分かれています。orderby は並べ替えの基準を決めます。order はその基準に対して、上から下へどう並べるかを決めます。たとえば「投稿日を基準に、新しい順で並べる」なら、基準は date、向きは DESC です。

指定役割
orderby何を基準に並べるかdate、title、modified、menu_order、meta_value_num など
order昇順か降順かASC、DESC

コードを読むときは、まずorderbyを見て「何を基準に並べるか」を確認します。次にorderを見て、「その基準をどちら向きに並べるか」を確認すると理解しやすくなります。

WP_Queryの組み立て方から確認したい場合は、WP_Queryの基本構文と$argsの書き方を先に読むと、$argsとループ全体の流れを確認できます。

DESCが常に「新しい順」になるわけではありません。指定した基準の大きい側から並べるため、dateなら新しい順、数値なら大きい順、titleなら文字列の降順です。

まずは日付順の最小例で見る

最初に覚えるなら、投稿日で並べる例が一番分かりやすいです。WordPressの記事一覧でよくある「新しい順」「古い順」は、orderbydate を指定し、order で向きを変えます。

次のコードは、通常投稿を投稿日が新しい順に3件取得する例です。検証環境で投稿日と表示順を照合してください。

クラシックテーマのテンプレート(またはテンプレートパーツ)で、一覧を表示したい位置に置く例です。投稿本文やfunctions.phpへ、そのまま貼るコードではありません。

PHPlatest-posts.php投稿日が新しい順に投稿を3件取得する最小例
$args = [   'post_type'      => 'post',   'posts_per_page' => 3,   'orderby'        => 'date',   'order'          => 'DESC',]; $latest_posts = new WP_Query( $args ); if ( $latest_posts->have_posts() ) {   echo '<ul>';    while ( $latest_posts->have_posts() ) {      $latest_posts->the_post();       echo '<li><a href="' . esc_url( get_permalink() ) . '">';      echo esc_html( get_the_title() );      echo '</a></li>';   }    echo '</ul>';} wp_reset_postdata();

このコードの読みどころは、orderbyorder を1行ずつ分けて読むことです。orderbydate なので、投稿日を基準にしています。orderDESC なので、新しい投稿から古い投稿へ並びます。

通常投稿以外を並べる場合は、post_typeを対象に合わせます。WP_Queryのpost_type指定方法では、postpage、カスタム投稿タイプの違いを確認できます。

最後にwp_reset_postdata()を置いているのは、the_post()を使った後にメインクエリの現在の投稿データへ戻すためです。並び順そのものとは別ですが、後続のタイトルやURLが別投稿を参照するのを防ぎます。

ASCとDESCはどう読むか

order に指定する代表的な値は ASCDESC です。ASC は ascending の略で、昇順を意味します。DESC は descending の略で、降順を意味します。

ただし、初心者が迷いやすいのは「投稿日でASCにしたらどうなるのか」「タイトルでDESCにしたらどうなるのか」という部分です。昇順・降順は、基準によって見え方が変わります。

基準ASCの見え方DESCの見え方
date古い記事から新しい記事へ新しい記事から古い記事へ
titleDBの照合順序による文字列の昇順DBの照合順序による文字列の降順
ID小さいIDから大きいIDへ大きいIDから小さいIDへ
comment_countコメントが少ない順コメントが多い順

つまり、ASCDESC は単に「上」「下」というより、指定した基準に対して小さい側から見るか、大きい側から見るかの違いです。日付なら古いか新しいか、数値なら小さいか大きいか、文字列なら文字順の向きとして考えます。

よく使うorderbyの指定

orderby には多くの値がありますが、最初から全部覚える必要はありません。よく使うものだけ先に押さえ、必要になったら公式リファレンスで確認する方が現実的です。

一般的な記事一覧でよく使うのは、datemodifiedtitlemenu_orderrandcomment_countです。modifiedは軽微な保存でも変わり、comment_countはコメント数であって人気そのものを表す指標ではありません。menu_orderは各投稿へ値が設定されていることが前提で、未設定の多くは0です。

orderbyの値並び替えの基準よくある用途
date投稿日新着記事一覧を作る
modified更新日最近更新した記事を表示する
titleタイトル記事名順に並べる
menu_orderメニュー順固定ページや手動順の表示に使う
randランダムランダムに1件出す
comment_countコメント数コメントが多い記事を出す
meta_value_num数値のカスタムフィールド価格、年齢、順位などの数値順に並べる

randではorderを省略します。また、指定配列の順序を保つpost__inpost_name__inpost_parent__inでも、orderを通常のASC / DESCとして使って順序を反転するものではありません。すべてのorderbyに同じようにorderが効くわけではありません。

タイトル順に並べる例

タイトル順は、日付順の次に試しやすい例です。見た目で結果を確認しやすく、ASCDESC の違いも比較しやすいからです。

次のコードは、通常投稿をタイトルの昇順で3件取得する例です。日本語タイトルの場合、期待した読み仮名順になるとは限らないため、まずは英数字や分かりやすいタイトルを持つテスト投稿で確認すると判断しやすくなります。

クラシックテーマのテンプレート(またはテンプレートパーツ)で、一覧を表示したい位置に置く例です。投稿本文やfunctions.phpへ、そのまま貼るコードではありません。

PHPtitle-order-posts.php投稿をタイトルの昇順で取得する例
$args = [   'post_type'      => 'post',   'posts_per_page' => 3,   'orderby'        => 'title',   'order'          => 'ASC',]; $title_posts = new WP_Query( $args ); if ( $title_posts->have_posts() ) {   echo '<ul>';    while ( $title_posts->have_posts() ) {      $title_posts->the_post();       echo '<li><a href="' . esc_url( get_permalink() ) . '">';      echo esc_html( get_the_title() );      echo '</a></li>';   }    echo '</ul>';} wp_reset_postdata();

このコードでは、orderbytitle なのでタイトルを基準にしています。orderASC なので、昇順で並びます。DESC に変えると、同じタイトル基準のまま、向きだけが変わります。

並び順は、orderbyを変える時はorderを固定し、orderを変える時はorderbyを固定して確認します。1つずつ変えれば、結果が変わった理由を追えます。

同じ投稿日を持つ投稿の順序も固定したい場合は、第二基準を加えます。次の差分では投稿日が同じときにIDの大きい投稿を先にします。ID順は投稿日順の代用ではなく、同値を安定させる補助です。

引数や処理の一部分だけを示した例です。このまま単独で貼らず、テンプレート内のWP_Queryとループへ組み込んでください。

PHPorderby-multiple.php投稿日とIDの2基準で並べる$args差分
$args = [   'post_type'      => 'post',   'posts_per_page' => 3,   'orderby'        => [      'date' => 'DESC',      'ID'   => 'DESC',   ],];

カスタムフィールド順ではmeta_keyと型に注意する

orderbymeta_valuemeta_value_num を指定すると、カスタムフィールドの値を基準に並べることができます。たとえば価格、開催日、スコア、優先度のような値で並べたいときに使います。

ただし、ここは初心者がつまずきやすい場所です。meta_valuemeta_value_numを使う場合はmeta_keyが必要です。meta_valueは文字列順、meta_value_numは数値順として使い分け、必要に応じてmeta_typeも検討します。対象のメタキーが未保存の投稿は結果から外れる場合があります。

orderby=meta_value_numが効かない場合は、meta_key、保存値、meta_typeの順に確認すると、指定とデータの問題を切り分けやすくなります。

datetitleorderbyorderを確認してからカスタムフィールド順へ進むと、並び順、保存値、型の問題を分けて調べられます。

よくある勘違い

日付順だけが合わない場合は、datemodified、カスタムフィールドの日付値のどれを基準にしているかと、ASC / DESCの組み合わせを確認してください。

表示のたびに順番を変えたい場合は、orderby=randの負荷とキャッシュへの影響も確認します。

orderだけを変えても、基準であるorderbyが違えば期待した順番にはなりません。また、orderbyへ自由な項目名は書けません。カスタムフィールドで並べる場合は、meta_keymeta_valueまたはmeta_value_num、保存値の型を組み合わせて確認します。

公式資料で確認するポイント

orderbyは指定できる値が多く、カスタムフィールドや複数条件の並び替えに進むほど確認する項目が増えます。必要な場面で公式リファレンスのOrder & Orderby Parametersを開き、使用できる値と前提条件を照合してください。

WP_Queryでthe_post()を使う一覧では、並び順とは別に、ループ後のwp_reset_postdata()も確認します。

公式リンク

公式ドキュメント

orderbyは基準、orderは向きで考える

WP_Queryの並び順は、orderbyorder を分けて読むと理解しやすくなります。orderby は「投稿日で並べるのか、タイトルで並べるのか、更新日で並べるのか」という基準を決めます。order は、その基準に対して昇順か降順かを決めます。

最初は datetitle だけで十分です。新しい順、古い順、タイトル昇順、タイトル降順を小さい件数で試せば、orderbyorder の関係が見えてきます。カスタムフィールド順や複数条件の並び替えは、その後で少しずつ確認すると結果の変化を追いやすくなります。

並び順を決める前の確認

  • 並べ替えの基準をorderbyで選んだ
  • 基準に対する向きをorderで選んだ
  • 同値がある場合の第二基準を決めた
  • randやpost__inなどorderを通常利用しない例外を確認した
  • meta_valueまたはmeta_value_numではmeta_keyと保存値を確認した
WP Query BuilderBuilderで条件を組み直す条件を選び、WP_Queryのコードを画面で作れます。Builderでクエリを作る

この記事を書いた人

Huddly

Web制作 / フロントエンドエンジニア

WordPressとフロントエンド実装で迷いやすい点を、公式情報と検証結果を分けながら、初学者にも追いやすい順序で整理しています。

この記事の検証情報

検証環境

WordPress
7.1
PHP
8.3.33
テーマ
wpq-media + DDEV
対象
カスタム投稿 / taxonomy / meta_query

更新履歴

  • 2026年8月24日 本文と補助情報を更新
  • 2026年8月21日 初回公開

この記事を活用する

あとで見返す・共有する

お気に入りに保存できます。役に立ったポイントは、いいねや共有で教えてください。

任意のご支援 役に立ったときだけ、活動を応援できます OFUSEはサイト・記事制作に使います。支援の有無で、読める内容や使える機能は変わりません。