WordPressで記事一覧を投稿順から更新順に変更する方法

WordPress(ワードプレス)のアーカイブやカテゴリーページなどを投稿順から更新順に変更するための方法です。通常は投稿順に設定されています。

function.phpにorderby=modifiedを設定

プログラム

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' );

query_postsを使って、投稿の繰り返しをしているリストの上下に書くこともできますが、これだとページネーションが効かなくなったり問題がおきてしまいます。

簡単に利用することができますが、基本的には上記のようにpre_get_postsを利用していきましょう。

query_posts の代わりに推奨されている書き方

  1. アクション pre_get_posts を用いる。
  2. pre_get_posts にフックした関数の中で is_main_query() を使ってメインクエリーであるかチェックする。
  3. メインクエリーの場合のみ、それを変更する。

query_postsは極力利用しない

極力query_postsは利用しないほうが安全です。特に、自作のワードプレスのテーマではなく他のテーマなどを活用している場合、解決するのが難しくなってしまいますのでオススメしません。

query_posts を使うことによって、ページ上のメインクエリーが置き換えられ、ページの読み込み速度に影響を与えることに留意してください。最悪の場合、倍かそれ以上の処理が発生します。簡単に使える代わりに、この関数は混乱と問題を引き起こす傾向があります。下記の注意をご覧ください。

https://wpdocs.osdn.jp/%E3%83%86%E3%83%B3%E3%83%97%E3%83%AC%E3%83%BC%E3%83%88%E3%82%BF%E3%82%B0/query_posts

 

WordPressを勉強したい方におすすめ

WordPressはphpでできているので、phpの勉強をするとより理解が進みます
もしphpを学習したい、ワードプレスを学びたいという方はこちらの記事がおすすめです!

→ 初心者でもサイト制作を学べるWordPressの学習スクール3選