サイトアイコン JOEのガメツいヨーロッパライフ

WordPress:トップページで、更新された記事のみ更新日を記載

ワードプレスで、トップページに並んでいる記事一覧に記載されている「投稿日」は、デフォルト設定では記事を更新したあとも「投稿日」のままです。更新したら「投稿日」ではなく「更新日」を表示するよう、PHPを書き換えます。

トップページの記事一覧における更新日表示イメージ

なお、トップページではなく個別ページを修正する手順は、WordPress:更新日時をテーマデザインに合わせて自然に追加 で示しています。そちらでは、single.phpを修正し、「投稿日」に横並びで「更新日」を追記するようにしています。

前提条件

本ブログはLION MEDIAテーマを使っており、本テーマを例に変更手順を示します。

手順

1.対象となるPHPファイルの特定

ワードプレスの「外観」→「テーマエディター」にて、PHP編集モードに入ります。

ここで、どのPHPファイルを触ればよいか特定します。投稿日は”the_time”であらわされるので、ページ内検索で探します。LION MEDIAでは、loop.phpに記載がありました。

トップページはindex.phpやhome.php、front-page.phpのいずれかであらわされています。the_timeの記載があったら、そこを書き換えて更新してみて、目当ての部分が変わっているか確認する、などの方法で修正すべき部分を特定します。

2.対象となるPHPファイルを子テーマにコピー

ワードプレスでは、PHPを編集する場合は子テーマにコピーして作業します。子テーマにPHPファイルがあれば、そちらが優先して読み込まれる仕様になっているようです。使用しているサーバーにFTPなどでアクセスし、親テーマフォルダにある当該PHPファイルを子テーマフォルダにコピーします。

LION MEDIAでは、親テーマフォルダ /LION MEDIA中にあったloop.phpを子テーマフォルダ /LION MEDIA child にコピーしました。

3.該当部分を編集

コピーした子テーマ中のPHPの、該当部分を編集します。

LION MEDIAの場合は、以下のように編集しました。

<?php if (get_the_modified_date('Y.m.d') != get_the_time('Y.m.d')) : ?>
	<li class="dateList__item wp-svg-history history"><?php the_modified_date('Y.m.d') ?></li>
<?php else :?>
	<?php if (get_option('fit_post_time') != 'value2' ) :	?>
		<li class="dateList__item icon-calendar"><?php the_time('Y.m.d'); ?></li>
	<?php endif; ?>
<?php endif; ?>

4~6行目が既存の行で、そのままにしています。その前後に1~3行目、7行目を追加しました。コードの中身は以下の意味合いです。

1行目: 「更新日」が「投稿日」と異なるとき、

2行目: 「更新日」を表示

3行目: そうでないとき、

4~6行目: 「投稿日」を表示

7行目: 1行目のif終わり

4~6行目はLION MEDIA以外のテーマでも同じような記載があると思います。

以上で、所望の修正が完了しました。

モバイルバージョンを終了