WordPressで記事一覧(トップページやアーカイブ)を更新日順に表示する

カスタマイズ

WordPressで記事一覧(トップページやアーカイブ)を更新日順に表示する

ワードプレスで、トップページ(投稿記事にしている場合)や、アーカイブなどの記事一覧は、最新記事から新しい順に表示されますが、これを更新日順に表示させる方法についてです。

 

記事のリライトやメンテナンスが多いサイトでは、更新日の順番に表示される方が都合がいい場合がありますし、サイドバーに最新記事ウィジェットを使えば、投稿日順と更新日順のダブルで表示できます。

 

当サイトもテーマの新バージョンリリースの度に、仕様変更や新機能追加などで過去の記事を最新情報にリライトする事が多いので、簡単に更新日順にする方法を探してみたら、我らがルクセリタスの開発者るなさんのブログに紹介されていました。

 

コードは上記サイトよりコピーして利用させて頂きました!

以下、その方法詳細です。

 

方法

このカスタマイズはPHPファイル(function.php)を編集します。

 

function.phpファイル編集について

ご利用のテーマのfunction.phpを編集しますので、テーマによって編集画面は異なります。

 

function.phpは、間違えるとワードプレスが動作しなくなる事もある重要ファイルですので、バックアップを取るなど必要な対応を行った上、自己責任でお願いします。

 

function.phpの編集については、危険もあるファイルなので、それを直接触らずに追記したいコードごと任意の単位で管理出来、その単位ごとに ON・OFF の切替も自在にでき、万一の場合はセーフモード機能もある便利なプラグインもありますので、以下を参考にして下さい。

※当サイトでは上記プラグインを利用しています。

 

プラグインを使わない場合は、子テーマに!

子テーマのfunction.phpに追記

子テーマがない場合は用意した方がいいです。どうしても子テーマなしで行う場合は、親テーマのfunction.phpを編集(非推奨)。

子テーマってなに??って方は以下を参考にして下さい。

 

方法3種

上記で説明した通り、以下のいずれかを編集します。

  • 子テーマのfunction.phpに追記(推奨)
  • 親テーマのfunction.phpに追記(非推奨
  • プラグイン「Code Snippets」を使う(当サイトでの対応)

 

ルクセリタスの場合

「Luxeritas」→「子テーマの編集」から

 

 

 

テーマ機能で「function.php」を編集する画面がない場合

「外観」→「テーマエディター」から
(子テーマ・親テーマ 共通)

 

プラグインで制御する場合

「Snippets」→「Add New」から

 

わかりやすいタイトルをつけて、コードを貼付け保存します。

 

コード一覧から簡単に ON・OFF出来ます。

 

詳細は以下を参考にして下さい。

 

追加するコード

以下を追記します。

function my_orderby_modified( $query ) {
	if( $query->is_main_query() ) {
		if( $query->is_home() || $query->is_category() || $query->is_archive() ) {
			$query->set( 'orderby', 'modified' );
		}
	}
}
add_action( 'pre_get_posts', 'my_orderby_modified' );

 

以上です。