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 の代わりに推奨されている書き方
- アクション pre_get_posts を用いる。
- pre_get_posts にフックした関数の中で is_main_query() を使ってメインクエリーであるかチェックする。
- メインクエリーの場合のみ、それを変更する。
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選