- 投稿記事の公開日と更新日が同じ時、更新日は非表示にしたいな!
- PHPの条件分岐で解決できそうだけど、具体的にどのように実装すればよいのだろうか?
こんな悩みを解決できる記事を書きました。
この記事を書いている僕は、フリーランスエンジニアとして働いており、
これまで50件以上のホームページ制作に携わらして頂いております。
この記事では、PHPの条件分岐を使用して、「投稿の投稿日と更新日が同じ時は、更新日を非表示にする方法」を解説しております。
ぜひ、読んで見てください!
投稿の投稿日と更新日が同じ時は、更新日を非表示にする方法
結論のコードは以下になります。このままコピペでお使いください!
<?php if(get_the_modified_time('Y-m-d') != get_the_time('Y-m-d')): ?>
<time datetime="<?php the_time('Y-m-d'); ?>">公開日: <?php the_time('Y.m.d'); ?></time>
<time datetime="<?php the_modified_time('Y-m-d'); ?>">更新日: <?php the_modified_time('Y.m.d'); ?></time>
<?php else: ?>
<time datetime="<?php the_time('Y-m-d'); ?>">公開日: <?php the_time('Y.m.d'); ?></time>
<?php endif; ?>
解説しますね。
まず、1行目にあります、「!=」 は、比較演算子の、「等しくない」という意味です。
PHPの条件分岐ですので、比較演算子の「!=」の意味が理解できれば、その後は解説は不要かと。
コメント付きでもう一度コードを記載しますね!
<!-- 「公開日」と「更新日」が等しくない時(同じ日付ではない時) -->
<?php if(get_the_modified_time('Y-m-d') != get_the_time('Y-m-d')): ?>
<time datetime="<?php the_time('Y-m-d'); ?>">公開日: <?php the_time('Y.m.d'); ?></time>
<time datetime="<?php the_modified_time('Y-m-d'); ?>">更新日: <?php the_modified_time('Y.m.d'); ?></time>
<!-- 出力結果: 公開日: 2022.✕✕.✕✕ 更新日: 2022.✕✕.✕✕ -->
<!-- 「公開日」と「更新日」が等しい時(同じ日付の時) -->
<?php else: ?>
<time datetime="<?php the_time('Y-m-d'); ?>">公開日: <?php the_time('Y.m.d'); ?></time>
<!-- 出力結果: 公開日: 2022.✕✕.✕✕ -->
<?php endif; ?>
「公開日」と「更新日」が等しくない時(同じ日付ではない時)
公開日: 2022.✕✕.✕✕ 更新日: 2022.✕✕.✕✕
「公開日」と「更新日」が等しい時(同じ日付の時)
公開日: 2022.✕✕.✕✕
というように出力されます!
<time> タグに、CSSの「margin」が効かない場合
<time> タグは、インライン要素であるため、CSSの「margin」などが効きません。
ブロック要素みたいな名前をしていますが、インライン要素です!
<time> タグ自体に、CSSの「margin」を効かせたい場合は、<time> タグに、「display: block;」を追記してブロック要素にしてあげてください。
time {
display: block;
margin-bottom: 10px;
/* display: inline-block; */
/* インラインブロック要素でも可 */
}
今回は以上です!