年齢を自動的に更新する

この記事を読むのに必要な時間は約 3 分です。

javas

ブログで有名人や、著名人を紹介するときに誕生日を入れた場合、そのままだと、何年経っても歳をとらない。

そんな時に、スクリプトを使えば、自動的に更新してくれる。

本来はPHPが便利なのだが、WordPressでは、本文中にPHPを入れても実行しない。

プラグインを使用すれば問題が解決するのだが、いいのがない。

配布されている古いプラグインは、ショートコードで動作するのだが、編集する時に気をつけないと勝手に改行されたりするので厄介だ。

WordPressは、便利だが、余計なお世話のエディターが邪魔をする。

こんな時はjava scriptなら外部にスクリプトを置けるので便利だ。

テキストエディターで以下を書きUTF-8Nで適当な名前(例:birthday.js)を付けて保存。

function age(bymd){
today=new Date();
ty=today.getYear(); if(ty<1900) ty+=1900;
tm=today.getMonth()+1;
td=today.getDate();
tymd=ty*10000+tm*100+td;
document.write(Math.floor((tymd-bymd)/10000));
}

age(19740531);//age(誕生日を8桁の半角数字で記入する)

上の例は、誕生日が1974年5月31日の場合。
→age(19740531)というふうに8桁の半角数字で記入する。

投稿記事の△◻︎さん(◯歳)←の◯の部分でスクリプトを呼び出す。

△◻︎さん(<script type="text/javascript" src="https://yourhostname/js/birthday.js"/></script>歳)

なお、自動整形機能を無効にするには、テーマのfunction.phpに以下を追記する。

remove_filter('the_content', 'wptexturize');  //  wptexturizeによる文字列変換をしない
remove_filter('the_content', 'convert_chars');  //  convert_charsによる文字列変換をしない

※注意)?>の一つ手前に追加すること。