Wordpressの記事を投稿日順から"更新日順"に変更する方法です。
デフォルト設定ではトップページやカテゴリーページの記事は新着順に表示されますが、これを更新日が新しいものから表示するようにしたい事があります。
管理画面から変更することは出来ませんが、functions.phpにコードを追記することで簡単に更新日順に変更することが出来ます。
コードを削除すれば元通りの表示順になるので、気軽に使える方法です。
functions.phpで記事を更新日順に変更する
Wordpressの記事の表示はデフォルトで投稿日順になっています。
管理画面から変更できれば良いのですが、できないようなのでfunctions.phpを使って更新日順に表示されるように変更しました。
個人的には記事ページ1つ1つが大切なのであって、一覧表示の順番はたいして重要ではないと思っているのですが、どうせなら新着順よりも更新日順の方が良いかなと思ったので変更しました。
更新後、新鮮になった記事をもう1度一覧ページのトップに表示させることで、検索エンジンのクローラーに更新アピールしようというのが一番の狙いです。
(SEO効果はないと思われますが、新着順よりは良さそうな気がします。)
更新日順に変更するコード
前置きが長くなりましたが、コードがこちらです。
子テーマなどのfunctions.phpに以下のコードを追記すれば新着順の記事が更新日順に変更されます。
//記事を更新日順に表示する function sortpost_modified($query) { if(is_admin() || !$query->is_main_query()){ return; } $query->set('order', 'DESC'); $query->set('orderby', 'modified'); } add_action('pre_get_posts', 'sortpost_modified');
コードの詳細については必要な方が少ないと思いますので割愛します。
orderはASCが昇順、DESCが降順です。
ordprebyのデータには更新日であるmodifiedを指定します。
pre_get_posts
フックが使えるので簡単ですね。
ポイント
条件分岐があるので管理画面は今まで通り、投稿日順の表示となります。
(同じ日付の場合は更新時間が新しいものが優先されます。)
除外したいページがある場合は適宜条件分岐を足して下さい。
functions.phpについては以下の関連記事を参考にどうぞ。
一応プラグインもあるらしいのですが、これくらいならfunctions.phpで十分ですね。
動作確認として、Wordpressインストール時に自動作成されているテスト記事を更新してみたところ無事に1番目に表示されました。
なおコードを削除すれば元通り新着順に簡単に戻すことが出来ます。
まとめ
更新日順にすれば、自分が手を入れた記事から順番に表示されるといった形になるのでなんだか気持ち良いですね!
投稿ページの「更新」ボタンを押しても更新日を変更させないようにカスタムするとWordpressはさらに使いやすくなります。数文字程度の更新で更新日が更新されるのは困りますもんね…
こちら詳しくは関連記事(↓)からどうぞ・w・
- 【Wordpress】更新日を変更したり非表示にする方法。記事の修正くらいで更新日を変更したくない。
続きを見る