WordPressのカスタマイズ方法やプラグインレビューを中心に、パソコン/動物/植物のことなどを紹介するホームページです

「公開日順」で表示されるWordPressのいろいろなリストを「更新日順」で表示する方法

公開日:2020(令和2)年6月19日/最終更新日:

WordPressのカスタマイズ情報



【景品表示法に基づく表記】ページ内のコンテンツには、商品プロモーションが含まれています

長いことWordPressで運営しているサイトでは、投稿数も相当なものになっていますね。後から自身で見てみると、解釈が間違っていたり、時流に即してなかったり、中には「なんじゃこりゃ」と思わず笑ってしまうような文章や内容のものもあったりして・・・(笑)。

見てしまった?のだからきちんとしておこう!ということで投稿を推敲して更新すると、何もしなければ更新日というところがその日の日付になりますね。でもそれはWordPress内部に保存される情報であって、個別の投稿の表示時には表示されるテーマがあるものの、更新したものが一見して日の目を見るということはないので少し寂しい感じがします。

そこでいろいろと調べたところ、ブログ一覧やカテゴリー内投稿一覧などWordPressが生成する一覧リストの並び順を「公開日の新しい順」ではなく「更新日の新しい順」にする方法が掲載されていました。日頃過去記事の書き直しなどを繰り返している私からすると願ったり叶ったりの機能ですので即採用!!他の方にもぜひ取り入れてほしいなぁということで紹介しておきます。

なお、この記事で紹介するコード自体は

WordPress の記事一覧を更新日時順で表示する

さんのと独自関数名以外はそのまま引用させていただいております(すてきな情報ありがとうございます)。

WordPress内の投稿一覧リストを「更新日順」にするコードと設置方法

ひょっとするとそういう機能を持つものがあるのかもしれませんが、今回の方法にプラグインは使用しません。

現在有効化しているテーマのfunctions.phpへコードを追記するだけです。

※functions.php?という方は、万が一トラブル等が発生した場合に対処が難しいと思いますのでおすすめしません

/* 一覧(ブログ一覧、カテゴリー一覧、アーカイブ一覧)を更新日順にする */
function ha_list_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', 'ha_list_orderby_modified' );

たったこれだけのコードで?と思われるかもしれませんが、本当にこれだけです。

簡単に解説すると、

  • is_home() ・・・ブログ形式にしている場合のトップページ、または固定ページにしている場合のブログ一覧
  • is_category()・・・カテゴリーに属する投稿の一覧
  • is_archive() ・・・アーカイブページ

に対して、pre_get_posts(一覧に表示する投稿を含める前に)というアクションフックを使って、orderby(並び順)をmodified(更新日順)にしなさいというものです。

と偉そうに言ってますが、私もまだまたPHPプログラムやWordPressの独自関数を書けるレベルには全然ありません。でも、こうしてコードの意味や書き方などを見ながら利用させていただいていくうちにだんだんと内容がわかるようになってきました。WordPressのこうしたカスタマイズコードについてはたくさんの方が紹介してくれていますから、積極的に活用して理解度を深めましょう!!ついでにそれを使ってエラーとなったときには環境によるものだったり、コードそのものが間違ってたり・・・とこれまたいろいろ勉強になりますよ。

そうそう、先ほど独自関数名以外は・・と書きましたが、引用元のコードとこのページのコードのどこが違うのかも比較しておくといいかと思います(超初心者向けアドバイスです)。そうしておくことでプログラムが重複した時のエラーを回避することができます。

著:清水 由規, 著:清水 久美子, 著:鈴木 力哉, 著:西岡 由美, 読み手:星野 邦敏, 読み手:吉田 裕介
¥2,889 (2024/02/08 17:07時点 | Amazon調べ)