最近構築している案件にて、いわゆる「企業紹介」のページがありまして。
そこでの文面がこんな感じ。
1980年の創業以来、44年間という年数を皆様と共に歩んでまいりました。
2024年も初心を忘れる事なく、皆様のお役に立てるように日々努力を重ね(以下略
というよくある文面。
ここで気になるのは「創業年からの経過年数」、そして現在の年号。
これ、毎年正月に絶対書き換えんとアカンやつや・・・・・・
よく似たケースとしてフッターのコピーライト表示に年号が含まれてる場合。
こういうのはもう自動的にその年になったら勝手に書き換わるように前もって実装しておきたい所。
WordPressの場合、関数を利用して日付を取得。
それをショートコードで挿入するという手順で実装可能。
実装手順
まずはfunctions.phpに追記する
使用しているテーマのfunctions.phpにショートコードの実装文を追記する。
function shortcode_year_current() { return wp_date('Y'); } add_shortcode('yearcurrent', 'shortcode_year_current'); function shortcode_year_passed() { return wp_date('Y')-1980; } add_shortcode('yearpassed', 'shortcode_year_passed');
WordPressで日付取得する場合はdate()、もしくはdate_i18n()が使われていました。
date()だとタイムゾーンがズレて表示されるので、その場合はdate_i18n()を使う、みたいな使い分け。
ところがWordPress5.3.0以降はdate_i18n()は非推奨になってしまいました。
その際に追加されたのがwp_dateという関数です。
処理速度も若干こちらの方が早いみたい。
wp_dateのリファレンスはこちら(WordPress私的マニュアル様)
上記ではまずyearcurrentというショートコードにwp_dateで取得した西暦を定義。
WordPressの日付フォーマットはこちらのサイトに全て書いてあります。
西暦は「Y」で4桁の数字が表示されるのでそちらをそのまま定義。
次はyearpassedというショートコードに経過年数を定義。
現在の日付で取得した西暦から、設立年である1980を引いた数を定義します。
これで「現在の西暦(2024)-1980=44」という数字がショートコードに定義されるわけです。
固定ページ本文内に定義したショートコードを使用する
あとは本文内の数字をショートコードに置き換えるだけ。
1980年の創業以来、[yearpassed]年間という年数を皆様と共に歩んでまいりました。 [yearcurrent]年も初心を忘れる事なく、皆様のお役に立てるように日々努力を重ね(以下略
ビジュアルエディタはオフにしてテキストモードで書き込む方が失敗は減らせます。
テーマのフッターのコピーライトに自動更新年号を入れる場合
テーマに直接書き込む場合にはショートコードを使わずとも直接phpが使えます。
footer.phpの中に大抵はコピーライトの表記部分があるのでそこに
<p id="footer-info">Copyright 2005-<?php echo wp_date('Y'); ?> HogeHoge INC. All Rights Reserved /</p>
という感じで挿入すればOKです。