投稿記事やカテゴリーの並び順を任意に変更したいときの方法

WordPressのデフォルトの状態では、記事の並び順は投稿日順で表示されますが、ページの見せ方によっては並び順を自由に変更したい時もあると思います。
またカテゴリーやタグは名前順で表示されますが、こちらも同様に異なる表示順序にしたい場合もあるでしょう。

このような時、並び順を変更するための対応方法メモです。

WordPressの並び替えをする時の方法

ここではプラグインを使って管理画面から一つ一つ手動で選んで並び替えする方法と、phpファイルで並び順を指定して一括して並び替えをする方法をご紹介します。

どのように並び替えをしたいかによって使い分けてください。

Intuitive Custom Post Order を使って直感的に並び順を変更

WordPressではデフォルトでは管理画面から記事やカテゴリーの並び替えを行うことができません。

「Intuitive Custom Post Order」は管理画面からドラッグ&ドロップで並び替えができるようにするプラグインです。設定がほとんど必要なく直感的に操作ができるので、初心者の方でも簡単に並び替えができます。
日本人の方が作成したプラグインのため英語ができない人でも扱いやすいプラグインです。

並び替えられる対象も幅広く、投稿や固定ページの他、カスタム投稿タイプ、カテゴリー・タグなども変更することができます。

インストール&有効化

まずはプラグイン追加画面から「Intuitive Custom Post Order」を検索し、インストール&有効化します。

プラグイン追加画面

【プラグインページ】
Intuitive Custom Post Order – WordPress プラグイン | WordPress.org 日本語

有効化するとメニューの「設定」に「並び替え設定」が追加されます。有効化しただけでは並び替えができないので、並び替えができるよう設定を行います。

並び替えの設定

設定する内容は、「投稿タイプ」と「タクソノミー」です。並び替えができるものが表示されるので、有効にしたいものにチェックを入れて「更新」をクリックします。

チェックを入れていないものは並び替えができないので、動作しない場合はここにチェックが入っているか確認してみてください。

テーマや他のプラグインによって動作しないこともあるようです。もしチェックを入れているのに並び替えができない場合、テーマを変更してみてたり、他のプラグインを停止してみるなどして原因を探ってみてください。

管理画面から並び替え

並び替えの設定が完了したら、あとは管理画面の一覧からドラッグ&ドロップで任意の順序に並び替えるだけです。並び替えると即時に反映されますので、変更したらサイトページで確認してみてください。

プラグインを停止するとデフォルトの並び順に戻ります。一度プラグインを使って並び替えをしていた場合、停止後に再度有効化すると入れ替えた順番で表示されます。

phpファイルを使って一括で投稿順序を変更

一つ一つの記事ではなく、更新日やタイトル順で一括に並び替えたいという場合は functions.php を使用して一括で並び替えができます。

function my_preget_posts($query) {
  if (is_admin() || ! $query->is_main_query()){
    return;
  }
  $query->set('order', 'DESC');
  $query->set('orderby', 'modified');
}
add_action('pre_get_posts', 'my_preget_posts');

$query->set('order', 'DESC'); の部分で昇順か降順を指定します。(DESC: 降順、ASC: 昇順)

$query->set('orderby', 'modified'); の部分で表示順序の内容を指定します。 modified は更新日時です。

特定の記事を先頭に表示させる

他の記事の並び順はそのままでも良いが、特定の記事のみ先頭に表示させたい記事がある場合は「ブログのトップに固定」というWordPressの機能が使えます。
一定期間過去の記事をトップに表示させたい、この記事は常にトップに表示させておきたいというものが投稿内にある場合に便利に使える機能です。

先頭に表示させたい記事の編集画面で「ブログのトップに固定」というところにチェックを入れればOK。

投稿一覧からクイック編集で、「この投稿を先頭に固定表示」にチェックを入れることで反映させることもできます。

チェックが入っている記事は一覧で「先頭固定表示」と表示されます。

サイト側では後から追加した記事よりも先に表示されるようになっているはずです。

TOPへ