[wp]function.phpに記述するとあれから何年が計算できる!

わたしはmy-age birthday=”19611012″と打ち込めば、[my-age birthday=”19611012″]歳ですと表示される。ショートコードがあるそうだ!

WordPressのショートコードで誕生日から現在の年齢を表示させる
http://kachibito.net/wordpress/my-age-with-shortcode.html

function.phpに記述するだけ…

function my_age($birthday) {
extract( shortcode_atts( array(
‘birthday’ => ‘birthday’
), $birthday));
return (int) ((date(‘Ymd’)-$birthday)/10000);
}

add_shortcode(‘my-age’, ‘my_age’);

WordPressのショートコードで誕生日から現在の年齢を表示させる
これは便利だ!
そして、今度はこれを
my-age birthday=”19610101″ というように西暦年月日を8桁に対応させたショートコードを記述すると計算してくれる。

秀逸なのは、紀元前280年でも、-2800401 のようにマイナスをつければ計算してくれるのだ。
つまり、100世紀の9999年12月31日まで計算できる。 [my-age birthday=”99991231″]年

101世紀の10000年12月31日は、[my-age birthday=”100001231″]年だ。
110世紀の10090年01月01日は、[my-age birthday=”100900101″]年と、1万で割っているだけだから、桁が増えても計算はし続けてくれる。1000世紀になっても物理的に存在していれば計算は可能だ。
西暦1000世紀まで、あと、[my-age birthday=”999991231″]年。
この記事を書いてからは[my-age birthday=”20160421″]年経過しました。

いままで、JavaScriptを何度もコピーして使っていたからだ…。

[JS]ジャニーズグループ、デビューから何年?JavaScript ジャニーズタレントで学ぶJavaScript
https://4knn.tv/script-from-birth-year/

しかし、ショートコードを使うためには、functions.phpの記載が必要だ。

その肝心なWordPressの、functions.phpはどこにあるんだ?

WordPressの functions.phpがある場所

WordPressで少しカスタマイズをしようとする時、説明のページには「functions.phpに下記のソースを追加します。」などと書かれていたりします。

functions.phpがある場所
/{WordPressがインストールされている場所}/wp-content/themes/{テーマ名}/functions.php

functions.phpがある場所
「外観」-「テーマ編集」-「テーマのための関数(functions.php)」

WordPressの functions.phpがある場所

「外観」-「テーマ編集」-「テーマのための関数(functions.php)」が、どこにも見当たらないので、親テーマである「hueman」から、function.phpをダウンロードして、子テーマの「hueman-child」へアップロードしてみたら…。

あらら! サイト全体が!みえなくなったぞ!

Fatal error: Cannot redeclare alx_wc_wrapper_start() (previously declared in /home/knn/4knn.tv/public_html/wp-content/themes/hueman-child/functions.php:813) in /home/knn/4knn.tv/public_html/wp-content/themes/hueman/functions.php on line 815

サイト全体が Fatal error に! 直訳すると「致命的なエラー」(泣)

子ファイルの階層に、functions.phpをいれるとダメなようだ。削除してみると元に戻った。

すると、親ファイルのままで、functions.phpを変更するべきなのか? いやいや、そうすると、せっかく、いつでも元にもどれる親ファイルから子ファイルにテーマを分けた意味が無くなるぞ…。

「functions.phpに下記のソースを追加します。」は、なかなか手ごわい!

どうやら、ここにヒントがありそうだが、読んでもよく意味がわからない…。

子テーマの作り方 functions.phpのカスタマイズ方法
http://ryus.co.jp/blog/kothemefunctionsphp/

弊社のCTOである瀬下さん、チャットでつかまえて、教えてもらった…。

子テーマの
functions.php には、重複しないように、追記したいfunctionsだけをアップ。

WordPressは親ファイルのfunctions.phpもちゃんと見ていたのか!

瀬下さん、ありがとうございました!

親テーマのfunctions.phpが、通常は働いてます。
自分でfunctions.phpに追加したいコードがあれば、その追加したいコードだけ子テーマのfunctions.phpに書きます。
そうすると親と子、両方のfunctions.phpが動作します。
テーマファイルだと子の物だけが優先されて親の物は無視されますが、functions.phpだと違うという訳です。
今後、好きなだけ子の方のfunctions.phpに追記していけば良いですよ。
もし表示がおかしくなったら、一時的にリネームすれば大丈夫です。

このショートコードでやりたかったこと

まず、Google日本語入力の単語登録で、【my-age birthday=”19611012″】を【えいじ】で登録します。

ウィキペディアで尊敬する人たちの誕生日を調べます。

レオナルド・ダ・ビンチ 誕生日 1519年5月2日

もしも、レオナルド・ダ・ビンチが生きていたら、[my-age birthday=”15190502″]歳です。

織田信長 誕生日 1582年6月21日

もしも、織田信長が生きていたら[my-age birthday=”15820621″]歳です。

ブルース・リー 誕生日 1940年11月27日

もしも、ブルース・リーが生きていたら[my-age birthday=”19401127″]歳です。