2018/06/05 改訂版 「親を捨てよ 家を出よう」「大学には行った方がいいの?」「好きなことをして生きるは正解か」を追記

記事の並び順をカスタムフィールドのメタ値で指定する方法

記事の並び順をカスタムフィールドのメタ値で指定する方法

記事の並び順をカスタムフィールドのメタ値で指定する方法です。

プラグインを使わなくても、メタ値の数字で記事を自在に並べ替えることができるので、小説カテゴリーのように、読む順番が固定されているシリーズものなどに応用できます。参考→小説&コラムのカテゴリー

まずカスタムフィールドの「名前」を決めて、「値」に数字を記入します。

昇順、降順、どちらでも構いません。

名前は覚えやすいものでOK。

この場合、story としています。

カスタムフィールド 記事の並び順

次に、functions.phpに次のように記入します。

is_category に、メタの値を適用したいカテゴリー名。この場合、novel 。

カスタム投稿タイプを使っている場合は、post_type で投稿名を指定します。この場合、book 。
通常の投稿なら、post と記述します。

orderby を meta_value_num に指定することで、メタ値の数字が適用されます。

order は 昇順ならASC、降順ならDESC。

この記述で、カスタム投稿 book 、カテゴリー名 novel に属する記事が、メタ値に記入された数字に従い、昇順で並びます。

Queryの内容は、関数リファレンス/WP Queryを参考にして下さい。date、 ID、 modified など、いろいろ応用できます。

二つの異なるカテゴリーに、別々のルールを適用する場合は、function my_orderby_meta の部分を、function my_orderby_date などに変更すればOK。

当サイトの場合、通常の投稿、その他のカスタムポストについては、更新日順。

小説カテゴリーのみ、カスタムフィールドの値を適用しています。

デメリット

この場合、カスタムフィールドの値に数字を固定してしまうので、将来的に記事の順番を入れ替えたい場合、すべての数字を書き換える必要が生じます。

たとえば、

1. アフリカ探検記
2. ドバイ放浪記
3. 南極滞在記
4. アメリカ横断記

を ドバイ、南極、アメリカ、アフリカ の順番に書き換えたい場合、数字を全て書き換えなければなりません。
更新日順のように自動ソートしないからです。

記事数が少なければ、ちょっとの手間で済みますが、数百に及ぶ場合、書き換えの量も半端ないので、小説カテゴリーのように、「これ以上、記事を追加したり、入れ替えたりする予定がない」と、並び順が固定しているシリーズものでないと応用は難しいです。

そのあたり、ご自身のコンテンツの質を考慮して、導入して下さい。

他にもいろんな方法があります↓

記事の並び順に関する記事

Top