誕生日年齢計算phpコードとWordPress表示ショートコードの作り方

2018年1月12日

誕生日年齢計算phpコードとWordPress表示ショートコードの作り方

プロフィールなんかに年齢を載せていると毎年書き換えなければいけないので面倒。phpを使ってる場合簡単なコードで毎年書き換えできる。WordPressの場合ショートコードを使えば便利。

書き換えるといってもちょっと数字を書き換えるだけなのでそこまで面倒ではないと思うかもしれないけど、例えば本文中のいたるところに年齢を入れている場合に見落とす恐れもあるし、複数の誕生日を使いわけている人(どんな人だ)なんかには便利だ。

floor関数を使った誕生日年齢計算phpコード

<?php
 $genzai = date("Ymd"); 
 $tanjyoubi = "19820401"; 
 echo floor(($genzai-$tanjyoubi)/10000);
?>

phpコード自体はシンプル、$genzaiは西暦8桁で今日、$tanjyoubiは誕生日を西暦8桁入力、1月は01、1日は01、桁数8桁でないと年齢計算が違ってくる(560歳や5600歳になる)。

現在から誕生日を引いて10000分の1にする。すると小数点以下は誕生日から何日経過したかという部分になる。floor関数は小数点以下を切り捨て整数を返すので年齢ということになる。

ちなみにceil関数という小数点以下を切り上げ、整数を返す関数を使うと実年齢より1歳上になる。誕生日から何日経過したかという部分を切り上げるからだ。さらにちなみにround関数という小数点以下(桁数指定できる)を四捨五入する関数を使うと、面倒なのでやめておく。

WordPressショートコードで誕生日年齢計算結果表示

WordPressで誕生日年齢計算を表示する場合、テーマにゴリゴリとphpコードを書いたり、投稿エディターやウィジェットでphpを使えるようにするプラグインを導入したりするより、ショートコードで表示させる方が手軽で安全。誕生日固定の簡易版ショートコードと、より便利な誕生日指定できる誕生日年齢計算ショートコードの作り方。

簡易版誕生日年齢計算ショートコード

function watasi_nenrei(){
$genzai = date('Ymd');
$tanjyoubi = "19820401";
return floor(($genzai-$tanjyoubi)/10000);
}
add_shortcode('nenrei', 'watasi_nenrei');

上のコードをテーマのfunctions.phpに書いて、ショートコード [nenrei] をエディターに挿入すれば年齢が表示されます。例えば、「私は[nenrei]歳です」とエディターに挿入すると、「私は37歳です」と表示される。

ただしこのショートコードだと誕生日を変える場合(あまりある場合ではないか)いちいちfunctions.phpを編集しなければいけないし、複数人のプロフィールを掲載する場合人数分の誕生日年齢計算ショートコードが必要となる。ということで、ショートコードに誕生日を入力できるようにしたのが次のショートコード。

誕生日指定できる誕生日年齢計算ショートコード

function nensuu_nyuryoku($bthday) {
        $genzai = date("Ymd");
        $tanjyoubi = $bthday[0];
        return floor(($genzai-$tanjyoubi)/10000);
}
add_shortcode('nensuu', 'nensuu_nyuryoku');

上のコードをテーマのfunctions.phpに書いて、ショートコード [nensuu 西暦8桁] をエディターに挿入すれば年齢が表示されます。例えば、「私は[nensuu 19820401]歳です」とエディターに挿入すると、「私は37歳です」と表示される。

nensuuの後には必ず半角スペースをあける。誕生日は半角数字で入力する。

こちらのショートコードはショートコードに誕生日を入力できるのでとても便利。複数人がそれぞれの誕生日を入力できるし、誕生日をその都度変えたい?時なんかは重宝する。

例:人によって年齢を変えたい(年齢詐称)

「私、彼には1993年2月2日生まれの[nensuu 19930202]歳と言ってるの、でもね本当は1981年2月2日生まれの[nensuu 19810202]歳なの、干支一回りもサバ読んでるのよ。」

上のようにエディターに入力すると下のように表示される。

「私、彼には1993年2月2日生まれの26歳と言ってるの、でもね本当は1981年2月2日生まれの38歳なの、干支一回りもサバ読んでるのよ。」

また現在の年齢だけではなく他にも応用がきく。

例:大学卒業して何年経つかな・・・

大学を卒業してもう[nensuu 19870331]年かあ・・・大学入学したのは[nensuu 19800401]年前。大学入学[nensuu 19800401]年前 - 大学卒業[nensuu 19870331]年前 大学何年いったんだ?

上のようにエディターに入力すると下のように表示される。

大学を卒業してもう32年かあ・・・大学入学したのは39年前。大学入学39年前 - 大学卒業32年前 大学何年いったんだ?

このように使い方は年齢だけでなく色々応用が効く。