AI WordPress おすすめアプリ おすすめガジェット コピペで使える ブログ運営 ミニマリズム 中学生でもわかるIT 健康 問題解決 自動化 読書 転職先選び
WordPressでは、投稿一覧がデフォルトで投稿日時順に並んでいる。しかし、投稿を更新日順で並び替えたい場合もある。特に、頻繁に記事を更新している場合は、最新の変更を加えた記事を上位に表示するほうが便利だろう。
ここでは、functions.php
に簡単なコードを追加して、投稿一覧を更新日順に並び替える方法を解説する。
目次
手順:functions.php
にコードを追加
- テーマの
functions.php
ファイルを編集する
WordPress管理画面の「外観」→「テーマファイルエディター」からfunctions.php
を開くか、FTPを使用してファイルにアクセスする。 - 以下のコードを追加する
/* 投稿一覧を更新日順に並び替える */
function my_sort_order_by_modified( $query ) {
if ( $query->is_main_query() && !is_admin() && $query->is_home() ) {
$query->set( 'orderby', 'modified' );
}
}
add_action( 'pre_get_posts', 'my_sort_order_by_modified' );
コードの説明
• $query->is_main_query()
これによって、メインクエリかどうかを確認している。他のカスタムクエリに影響を与えないための条件だ。
• !is_admin()
管理画面にはこの並び替えを適用しない。これにより、管理画面の投稿一覧が変更されることを防ぐ。
• $query->is_home()
トップページ(投稿一覧ページ)でのみこの並び替えを適用する。個別の投稿や他のアーカイブページには影響を与えない。
• orderbyのmodifiedパラメータ
orderbyにmodifiedを指定することで、投稿が更新された日時順に並び替える。
応用:他のページにも適用したい場合
このコードはトップページだけで動作するように設定しているが、他のページ(アーカイブページやカスタム投稿タイプなど)にも適用したい場合は、$query->is_home()の部分をカスタマイズする必要がある。例えば、アーカイブページにも適用したいなら、$query->is_archive()を加えることができる。
注意点
• テーマのfunctions.phpを直接編集する場合、テーマのアップデートで変更が上書きされる可能性がある。子テーマを使用している場合は、そちらにコードを追加することを推奨する。
• このカスタマイズは投稿一覧にのみ影響を与える。他のページやカスタムクエリには適用されないように設計しているが、必要に応じて調整できる。
まとめ
WordPressで投稿一覧を更新日順に並び替える方法を解説した。このカスタマイズを使えば、頻繁に更新されるブログやニュースサイトなどで、常に最新情報を目立たせることができる。functions.phpにコードを追加するだけなので、ぜひ活用してみよう。