WordPressインデックス(アーカイブ)ページの表示順を更新日順にするカスタマイズ方法

WordPressサイトを運営していて、情報の更新で投稿内容を大きく書き換える場合があります。

ただ、デフォルトのWordpress仕様だとインデックスページは投稿日順なので、更新した投稿の位置は変わらず、過去記事として目に触れにくい位置にあると思います。

これを「投稿を更新した場合はインデックスページのトップに持ってきて目に触れやすくする」カスタマイズ方法の紹介です。

スポンサーリンク
レクタングル(大)広告

メインループを更新日順にするカスタマイズ

メインループの表示順を変更するカスタマイズは、結構簡単でテーマ(子テーマ)のfunctions.phpに以下のように貼り付けるだけです。

//メインクエリの出力順変更
add_action( 'pre_get_posts', 'change_main_loop_sort_order_demo' );
function change_main_loop_sort_order_demo( $query ) {
  if ($query->is_main_query()) {
    $query->set( 'orderby', 'modified' );
  }
}

「pre_get_posts」をフックして、メインループ投稿情報を取得する前に、表示順(orderby)を更新日(modified)にしているだけです。

参考 プラグイン API/アクションフック一覧/pre get posts – WordPress Codex 日本語版

まとめ

ということで、「投稿の変更をなるべく周知させたい」なんて場合には良いかもしれません。

ただし、投稿内容を大幅に変更するわけでない、単なる誤字修正でもWordpressでは「更新」とされてしまいます。

ですので、「大幅な内容修正」と「単なる誤字修正」を区別するために、以下のようなカスタマイズを併せて使うと良いかもしれません。

当サイトは、記事の更新日をGoogleに伝えるような設定になっています。 具体的に書くと、更新日に以下のようなtimeタグが設定されていま...