タイトルが変な感じするけどそんな感じのやつ。
どういうことか
当ブログもご多分に漏れず、記事を公開後に修正することがある。そうすると、一般的なテーマでは投稿日の他に更新日が表示される。手が入っていることが分かるのでいいことなんだけど、翌日とか直近で誤字脱字に気がついて直したときも表示される。それは恥ずかしい。正確な情報を伝えるって意味では些細なことでも表示した方がいいよねって感じなんだけど、羞恥心と戦うのは地味に難しい。あと、単純に、黙ってたらバレないから明かしたくないみたいな見栄のところ。
というわけで、公開日から一定期間空けてからの更新に対して更新日の表示をやっていこう、という話。
組む
やることは簡単。
公開日と更新日を取得して、公開日に一定期間を足したものと更新日を比較して、更新日のほうが後になってたら表示するっていう条件分岐。日付はそれぞれwpタグで出力できる。
<?php
$datePost = get_the_date('Y/m/d'); //公開日取得
$dateUpdate = get_the_modified_date('Y/m/d'); //更新日取得
$dateTrigger = date('Y/m/d',strtotime($datePost . "3 month")); //公開日に期間を追加(3ヶ月)
if(strtotime($dateTrigger) < strtotime($dateUpdate)): $showUpdate = true; endif; //比較して条件を満たせば変数に中身を与える
?>
<div class="date">
<?php if($showUpdate): ?>
更新日:<time datetime="<?php the_modified_date('Y-m-dTH:i:sZ'); ?>" itemprop="dateModified"><?php echo $dateUpdate; ?></time>
<?php endif; ?>
公開日:<time datetime="<?php the_date('Y-m-dTH:i:sZ'); ?>" itemprop="datepublished"><?php echo $datePost; ?></time>
</div>
<time>にはSEOのどうのこうのがあるらしいのでついでに書いた。
日付の操作は地味に厄介で整形する箇所が多いので注意すること。とりあえずstrtotimeでの期間指定さえいじってしまえば後は使いまわしでいいんでほぼコピペで使える。
思ったこと
無条件に更新日を表示させるのは嫌だ、というのがテーマの今回。
カスタムフィールドで真偽を設置して表示・非表示の択を掛けることを考えたんだけど、導入はすぐできるけど活用がめんどくさいよねって話で。だからまあ、このくらいならいいかなって期間を指定して組むのがいいかも。
隠すのはよくない、ごまかしはよくないみたいなこともリスクとして気にかかったりするんだけど、それも結局、他所を見てみたら投稿日以外表示がない、そもそも投稿日を表示してないことまであったりして、比べたらまだまともなんじゃない?って思ったりした。レギュレーションってあるんですかね。
コメント