【当サイトはアフィリエイト広告を利用しています】

WordPressフッターに年を表示させるコードをずっと間違えてた

つい最近まで解決策が分からなかった

[013/365] - New Year, New Desk
[013/365] – New Year, New Desk / SimonDoggett

インターネット上に存在するサイトやブログなどの各ページには、著作権を明記するためのコピーライトが表示されているはずです。もちろんうちのブログにも表示させています。

Skitched 20150228 04

↑ PC表示の場合は上のような感じ。うちのブログでは

© 2012-2015 りくまろぐ

という風に表示させているつもりでした。つもりだったんです。

「2012」はブログを開設した2012年を表し、「2015」は表示している現時点の2015年を表す。その後はブログ名。先頭にはコピーライトを表す「©」のマークを表示させています。

(コピーライトのマークは「©」と書けば表示されます。ここでは「&」を全角文字で書いてますが、実際は半角文字です)

ところがですね、この「2012-2015」の部分がミョーだったんです。

2015の部分は、WordPressのテンプレートタグという命令コードを使って「当日の年」を表示させてるつもりでした。意図通り「2012-2015」と表示される時もあったんですけど、そう表示されない時もあった

これが意味分からなかった。上手くいく時もあれば、上手くいってない時もある。なぜそんな気まぐれなのか。

今月、少し時間を取ってブログのカスタマイズを久々にやったんですけど、その際に「やっぱりフッターの年がおかしくなってる」事に気付き、調査してようやく原因が分かりました。気まぐれとかではなく、単なる私の記述ミスでした。まるまる3年間ずーっと間違ってたんです。

「the_date」を使ってた

実際どうなってたか、スクショでお見せしましょう。

Skitched 20150228 01

↑ 上のは私のPCに構築しているテスト環境での表示ですが、「2012-2014」と表示されてます。今日は2015年なのに、2014と表示されている。

Skitched 20150228 02

↑ これなんかもっとヒドい。「2012-2012」だなんて、まるで私が何も成長してないみたいじゃないか。私だって生きてるんだ。歳も取ったし体重も増えた。ほっといてくれ。

「2012-2015」と、正常に表示されることもあったんです。でも上のように「2014」だったり「2012」だったり、表示がバラバラになる現象。なぜなのかサッパリ分からなくて、出した結論が「WordPressのバグだな」という責任転嫁でした。ええ、ヒドい男ですよ私は。

当日の年を表示させるために、WordPressテンプレートタグの「the_date」を使ってたんです。勉強用に買ったWordPress本のどれかにそう書いてたはずで、2012年に自作テーマを作った時から何の疑いもなく「the_date」と記述してました。

具体的なコードは以下の通り。

<p class="copy">&copy; 2012-<?php the_date('Y'); ?> <a href="<?php echo home_url(); ?>/"><?php bloginfo('name');?></a>.</p>

「the_date」直後のカッコ内で「’Y’」とクォーテーションで囲んでパラメータ指定することにより、年月日のうち年だけを表示できます。

この「the_date」が今回の諸悪の根源でした。

「the_date」は何の日付を表示するのか

「the_date」について調べてみたらすぐ分かりました。今日の日付ではなく、記事の投稿日・更新日を取得するのが「the_date」だったみたいです。

だから、2012年に書いた記事のフッターには2012と表示されるし、2014年の記事なら2014になる。今年の記事なら2015だ。なるほど、だからページによって年が違ってたのか。

じゃあ「今日の年」を表示させるにはどうすればいいのか。正解は「date」を使います。

今日の日付(年のみ)を表示させる方法

2012年だろうが2015年だろうが、いつ書いた記事でも等しく「2012-2015」と表示させるためには、「date」を使って以下のようにコードを記述すればOKです。

<p class="copy">&copy; 2012-<?php echo date('Y'); ?> <a href="<?php echo home_url(); ?>/"><?php bloginfo('name');?></a>.</p>

「the_date」はHTMLコードを出力してくれますが、「date」は出力しませんので「echo」を付けて

「echo date(‘Y’);」

として出力する必要があります。パラメータの「’Y’」は両者とも同じ意味で使えます。

Skitched 20150228 03

↑ ようやく正常に表示されました。

常に「今日の日付(年のみ)」を自動表示しますので、来年2016年になれば、ここも自動的に「2012-2016」と表示してくれます。イチイチ新年になる度に手入力で修正する作業が発生しません。

ちなみに、コピーライトの書き方

コピーライト部分には、サイト名の直後に「All Rights Reserved」と書いていたり、「Copyright ©」と書いていたり、記号なしで「Copyright」だけ書いてたり、いろんなパターンが見受けられますよね。私も開設直後は「All Rights Reserved」を書いてました。

コピーライト文に関しては以下記事が詳しいです。私もこちらの記事を拝見した上で、あえて自己判断で「2012-2015」と書くようにしました。

【参考】年号と©マークと何が必要?Copyright(コピーライト)表記の正しい書き方 | 株式会社LIG

りくま ( @Rikuma_ )的まとめ

2012だったり2014だったり、年の表示がフラフラ酔っ払った人の千鳥足みたいに一定しなかった時点で、疑問を持って調べていれば良かったんですけどね。放置し過ぎてしまいました。今回のカスタマイズで気付けて良かった。

サイトやブログ管理者の方々で、もし年表示がフラフラ落ち着かない場合は、日付用テンプレートタグが適切かどうかを調べてみてください。

-WordPress
-