通常、WordPressの投稿一覧は新しい記事が一番上に表示されますが、古い記事順(昇順)に表示したい場合のお勧めな方法を解説します。
また、その方法を試しても並び順が反映されない場合の対処法も合わせて書きます。
「archive.php」や「date.php」に書く方法もありますが、お勧めなのは「functions.php」に書く方法で、まとめて並び順を変更できます。
functions.php
if(is_admin() || !$query->is_main_query()){
return;
}
$query->set('order', 'ASC');
$query->set('orderby', 'date');
}
add_action('pre_get_posts', 'sort_order');
上記をコピペでOKです。
「order」の部分で、「ASC」は昇順(古い順)という意味になり、「DESC」にすると初期値の降順となります。
「orderby」で何順に並べ替えるか指定でき、「date」は日付順となります。
あとは、この「functions.php」をアップして確認してみてください。
もし、並び順が反映されない場合は、並び順に関係しているプラグインが原因の可能性があります。
私の場合「Post Types Order」というプラグインが有効になっており、無効化したら反映されました。
同じようなプラグインで「Intuitive Custom Post Order」というのがありますが、これは有効化しても問題ありませんでした。
ただ、「functions.php」で強制的に並び順を変更すると、プラグインを導入しても記事を任意に並び替えする事が出来ません。
特定の記事をページの最上部に表示するという設定も適用されません。
この方法を選択する場合は、今後も昇順(古い順)を維持しつづける事が前提となりますので、よく考えてから実施いただけたらと思います。