カテゴリー
コミュニケーションズ

WordPressの投稿ページと固定ページに更新日を表示させる

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

現状分析

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での設定方法

作成者: えいち/H

マジシャンのえいち/Hです。
東京でプロマジシャン|出張、派遣をやってます。
記事の感想、コメント、質問などはTwitterにお願いします。
フォローも良かったらお願いします。
Instagram / YouTube / Facebook