
WordPressのデフォルトの状態では、記事の並び順は投稿日順で表示されますが、ページの見せ方によっては並び順を自由に変更したい時もあると思います。
またカテゴリーやタグは名前順で表示されますが、こちらも同様に異なる表示順序にしたい場合もあるでしょう。
この記事は、並び替えができるいくつかのプラグイン、またテーマファイルにコードを記述して並び替えをする方法をまとめています。
どのように並び替えをしたいかによって使い分けてください。
並び替えができるプラグインリスト
並び替えができるプラグインはいくつも存在します。いくつか使用してみたプラグインをご紹介します。操作や設定方法、何を並び替えるためにプラグインが必要かによって選んでいきましょう。
Intuitive Custom Post Order
「Intuitive Custom Post Order」はドラッグ&ドロップで並び替えができるプラグインです。並び替えられる対象も幅広く、投稿や固定ページの他、カスタム投稿タイプ、カテゴリー・タグなども変更することができます。
プラグインを有効化して、適用させたい投稿タイプやタクソノミーにチェックを入れるだけで並び替えができるようになります。
記事に関連するもの全て、管理画面から並び替えを行いたい場合におすすめのプラグインです。
Simple Custom Post Order
「Simple Custom Post Order」は先述した「Intuitive Custom Post Order」とほぼ同じという印象です。
UIが少しリッチで、投稿タイプの順序をリセットする機能がついています。
Post Types Order
「Post Types Order」は、投稿や固定ページの他、カスタム投稿タイプなど投稿記事の順序を変更できるプラグインです。カテゴリーやタグなどの変更はできません。
こちらも有効化したら、ドラッグ&ドロップで並び替えができるようになります。
「Intuitive Custom Post Order」や「Simple Custom Post Order」は管理画面で投稿やタクソノミのタイプごとに並び替えをするかしないかを決めることができますが、ユーザーによって並び替えをしないようにする、といったことはできません。管理画面にログインできれば誰でも並び替えができます。
「Post Types Order」では、並び替えができる権限グループ設定できたり、プラグインを停止せずとも一時的に並び替えの機能を停止させるといったこともできます。こういった設定をできるようにしておきたい場合は「Post Types Order」がおすすめです。
Category Order and Taxonomy Terms Order
「Category Order and Taxonomy Terms Order」はカテゴリーやタクソノミーの順序を変更できます。タグや投稿の順序は変更できません。
「Post Types Order」を使用して、カテゴリーやタクソノミーも並べ替えをしたいという場合はこちらがおすすめです。同じ開発者なので互換性は高いと思われます。
Custom Taxonomy Order
「Custom Taxonomy Order」はあらゆるタクソノミーの並び替えができるプラグインです。カテゴリーやタグ、テーマやナビゲーションメニューの並び替えにも対応しています。
タイトルやスラッグのアルファベット順に並び替える、投稿数が多い順に並べるといったことも簡単に設定できます。
Simple Page Ordering
「Simple Page Ordering」は固定ページの並び替えができるプラグインです。何か設定する必要はなく、有効化するだけで並び替えができるようになります。
デフォルトの固定ページの他、階層化された投稿タイプ、またページ属性を持つ投稿タイプを並び替えることができます。
階層化された投稿タイプの場合は、ワンクリックで階層移動もできます。
並び替えるのは上述したページだけで問題ない場合におすすめのプラグインです。
テーマファイルから一括で投稿順序を変更
一つ一つの記事ではなく、更新日やタイトル順で一括に並び替えたいという場合は 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の機能が使えます。
一定期間過去の記事をトップに表示させたい、この記事は常にトップに表示させておきたいというものが投稿内にある場合に便利に使える機能です。
先頭に表示させたい記事の編集画面で、ドキュメントパネルの「ステータス」部分をクリックすると「先頭固定表示」のチェック項目が表示されます。

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

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

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

カスタムフィールドを使って順序を変更
順序を変更したい投稿タイプに「記事の表示順序(my_order)」といったカスタムフィールドを追加することでも、投稿の順序を制御することができます。
【メインループの順序指定】
function my_preget_posts($query) {
if (is_admin() || ! $query->is_main_query()){
return;
}
$query->set('meta_key', 'my_order');
$query->set('orderby', 'meta_value_num');
$query->set('order', 'ASC');
}
add_action('pre_get_posts', 'my_preget_posts');【サブループでの指定】
$args = array(
'post_type' => 'post_name',
'meta_key' => 'my_order',
'orderby' => 'meta_value_num',
'order' => 'ASC'
);数値以外で順序を指定する場合は、meta_value_num を meta_value にしてください。
固定ページの並び替え
固定ページの管理画面での並び順は、「タイトルの昇順」です。
固定ページには、デフォルトで順序を設定できるようになっています。
編集画面の右にあるドキュメントパネル、もしくは管理画面のページ一覧で表示される「クイック編集」から変更できます。
先頭に表示させたい記事の編集画面で、ドキュメントパネルのタイトル横にある3点リーダーをクリックして、さらにリストにある「順序」をクリック。

「順序」のポップアップが表示され流ので、ここで表示させたい順序を入力して保存します。

クイック編集の場所はこちら。

設定する順序番号は「1, 2, 3」といった一桁数字より「10, 200」のように二桁以上にしておくと後から割り込んで設定したい場合に、他のページの順序を修正せずに済みます。固定ページをどれだけ作成するかによって番号設定も考えてみてください。
また「-1」のように負の整数も設定可能です。
カテゴリー : WordPress