ブログの記事一覧や記事そのものに表示される投稿日(公開日)や更新日。なんとなく「投稿日は表示せずに更新日だけで良いのでは」という感じもするものです。心理的には(更新日が表示されているにしても)
「投稿日が古いと分かれば、記事自体が古く見られてアクセスに影響するかも....」
というところですが、実際に影響あるかどうかで言えば、複数ブログを運営している経験上、実はあまり影響があるとは思ってません。
ただ、気持ち的には、更新日だけあればいいんじゃないのかな?という感じもしますので、ここでは記事の投稿日(公開日)の表示を、記事の更新日だけに変更する方法を見ておきたいと思います。
使用するテンプレートタグ
記事の公開日(投稿日)を表示したり、記事の更新日を表示するには、phpとしては以下のようなテンプレートタグ(ワードプレスで定義されている関数みたいなもの)を使用しています。
1 2 3 4 5 |
・記事の公開日を表示する the_time('Y-m-d'); ・記事の更新日を表示する the_modified_date('Y-m-d'); |
※)日付のフォーマットについて
・ここでは例として、xxxx-xx-xx という形にしています。
・xxxx年xx月xx日、としたい場合には「Y-m-d」を「Y年n月j日」として行けばOK(the_time('Y年n月j日'))
※)このテンプレートタグ、the_time, the_modified_date の仕様、説明の詳細を知りたい場合は以下参照してみてください
投稿日と更新日で場合分けをする
記事の公開日(投稿日)と更新日を切り替える、とした場合には、場合分けを使って以下のような形にすれば良いですね。
1 2 3 4 5 6 7 |
記事の公開日と更新日を比べる 1)「公開日と更新日が同じ」の場合(投稿されて、その後更新されてない) the_time('Y-m-d'); 2)「公開日と更新日が異なる」場合(投稿されたのちに、更新された) the_modified_date('Y-m-d'); |
公開日と更新日を比べる場合、公開日と更新日を各々取得するには、
・公開日(投稿日)の取得:get_the_time()
・記事の更新日の取得: get_the_modified_date()
を使えば良いので、実際のコードは以下のようになります。
1 2 3 4 5 6 7 |
<?php if (get_the_time() == get_the_modified_date()) { // 記事の公開日と更新日を比べて、同じの場合 the_time('Y-m-d'); //「公開日と更新日が同じ」の場合は投稿日を表示 }else { the_modified_date('Y-m-d'); //「公開日と更新日が異なる」場合は更新日を表示 } ?> |
※)テンプレートタグ、get_the_time, get_the_modified_date の仕様、説明の詳細を知りたい場合は以下参照してみてください
実は the_modified_date だけで良い?
ただ実は、更新日を表示する the modified date の仕様を見ると、
- the_modified_date では、固定ページにしても記事にしても、一度も更新していない場合は「更新日は作成日(公開日)と同じ」となる
ということは、the_modified_date は、
- 記事が更新してなければ投稿日を表示し、
- 更新していたら更新日を表示する
つまり、日付だけを表示する場合には上の方で見た場合分けをするまでもなく、単に、the_time を the_modified_date に置き換えてやればよい、ということになりますね。
ラベルを付ける場合には場合分けが必要
でも日付だけではなく、投稿日では「投稿日:」、更新日では「更新日:」などのラベルを日付の前に付けたい!、などあれば、場合分けが必要になります。例えば以下のような感じ。
1 2 3 4 5 6 7 8 9 |
<?php if (get_the_time() == get_the_modified_date()) { // 記事の公開日と更新日を比べるて、同じの場合 echo '投稿日:'; //「公開日と更新日が同じ」の場合は「投稿日:」を表示 the_time('Y-m-d'); //投稿日を表示 }else { echo '更新日:'; //「公開日と更新日が同じ」ではない場合は「更新日:」を表示 the_modified_date('Y-m-d'); //更新日を表示 } ?> |
今回のまとめ
実際にここで見たカスタマイズを行うには、使っているテーマの中の編集(ダッシュボード ⇒ 「外観」⇒「テーマの編集」)を行うわけですが、例えば賢威では以下のファイルを編集すれば良さそうです。
- 賢威の場合
- 個別記事の投稿日/更新日の表示 ⇒ single.php
- 記事一覧の投稿日/更新日の表示 ⇒ cont.php
テーマによっては、編集箇所がなかなか特定できない、というのもあると思いますが、ここでみたテンプレートタグ the_time や the_modified_date で検索してみると、意外にすぐ見つかるかもしれません。
また、テーマの編集では、子テーマを使うことを強くお勧めします。編集においては細心の注意を払ってくださいね。
ブログで収益化を図りたいぞ!という場合には、以下のメルマガにも是非登録してみてください。^-^)