私が使っているWordPressのテーマの「Twenty Nineteen」ではページの更新日が表示されないので表示されるように変更してみた。

WordPress6.0.3

現状分析

Twenty Nineteenのデフォルト状態だと投稿ページに投稿日が固定ページには何も表示されません。

これだとせっかく更新していてもサイトを訪れた訪問者にはその情報が伝わらない。

投稿した日付が古いと更新していても古い情報だと判断してサイトを離れてしまう可能性がある。

固定ページに関しては日付が全く表示されないのでこのサイトはちゃんと更新しているのか?とサイトを訪れた人に疑念を抱かれる可能性がある。

それを避けるために固定ページには今まで左上にhtmlでわざわざ以下のように記載していた。

<time datetime=”2019-03-02″>2019年3月2日</time>:最終更新<br>

ただこれだと毎回書き直さないといけないのでめんどくさい。なので設定をいじって自動で表示されるように変更した。

どのような表示にするか

投稿ページでは投稿日の次に更新日を出力します。

固定ページに関しては私のサイトの場合、投稿日はあまり意味を持たず、更新日だけがわかればいいので投稿日は表示しない様にする。なので条件分岐で投稿ページと固定ページで分岐させている。

もし固定ページでも同じく投稿ページを表示させたい場合は条件分岐を省いてね。修正箇所が少なくすむ。

やり方

まずWordPressのダッシュボードなどが表示される画面を開いて左のメニューの「外観」→「テーマエディター」と進んで今度は右の「テーマファイル」から「inc」→「template-tags.php」を開きます。

テーマの編集
Twenty Nineteen: template-tags.php (inc/template-tags.php)

	if ( ! is_page() ){
		if ( get_the_time( 'U' ) !== get_the_modified_time( 'U' ) ) {
			$time_string = '<time class="entry-date published" datetime="%1$s">%2$s</time> / <time class="updated published" datetime="%3$s">%4$s</time>更新';
		}
	}
	else{
			$time_string = '<time class="updated published" datetime="%3$s">%4$s</time>更新';
	}

ファイルの変更箇所になる。変更箇所だけを記載している。

17行目のところ

/time> / <time class=”updated published”

time><time の間に「 / 」半角スペースとスラッシュを追加

updatedの後ろに「published」を追加

</time>更新’; のところに更新を追加

※「if ( ! is_page() ){}」は固定ページじゃない場合に記載した書式で出力される。

書式は自分の好きなようにアレンジしてね。

これだけだと今まで通り固定ページには表示されないので固定ページの場合の条件分岐を追加します。

if ( ! is_page() ){
}

else{
$time_string = ‘<time class=”updated published” datetime=”%3$s”>%4$s</time>更新’;
}

そしたら「ファイルを更新」を押します。

elseで固定ページ以外じゃないのということになるので結局固定ページの場合の書式になる。
こちらも自由にアレンジしてね。

※固定ページも投稿ページと同じ様に「投稿日 / 更新日」とする場合はelseの部分の記載はせずに、「if ( ! is_page() ){}」のとことを「if ( is_single() || is_page() ){}」に変えれば行けると思う。

テーマの編集
Twenty Nineteen: entry-header.php (template-parts/header/entry-header.php)

次に「template-parts」→「header」→「entry-header.php」を開きます。

最後の行(<?php endif; ?>)の下に以下を追加 

<?php if ( is_page() ) : ?>
<div class="entry-meta">
<?php twentynineteen_posted_on(); ?>
</div>
<?php endif; ?>

「ファイルを更新」

14行目の「<?php if ( ! is_page() ) : ?>」は固定ページ以外の場合はヘッダーに書き出す様になっているので固定ページの場合も書き出すように一番下に固定ページの場合の記載を追加します。

以上で完了。

トップページや固定ページを見ると

固定ページのタイトルの下に更新日を表示

今まで何もなかったタイトルの下に日にちが表示されている。

タイトルの位置は少し上に上がります。

投稿ページを見ると

投稿ページのタイトルの下に更新日を表示

投稿日の次に更新日の記載が追加された。

因みに投稿日と更新日が同じ場合は今まで通りで更新日は表示されません。

参考リンク

条件分岐タグ

WordPress:カスタマイズするなら覚えておきたい条件分岐について

WordPress 記事詳細に記事公開日と更新日を表示

Twenty Twentyでの設定方法