web関連

WordPressのループで同じ日だとthe_date()で日付が出力されないからthe_time()を使えばいいって話

WordPressのループで同じ日だとthe_date()で日付が出力されないからthe_time()を使えばいいって話

wordpressの一覧ページで日時を表示をさせようとしたときに「the_date()」使ったら同日の記事だと日時を出力をしなかったので備忘録

「the_date()」は同日の記事の日付を省略する

同じ日付の記事があると、同日の最新の記事にのみ日付がつき他の同日の記事には日付がつきません。

// × 同日の記事があると日付が省略される
<?php the_date('n/j/Y'); ?>

なので「the_time()」を使いましょう

// ○ 日付が省略されない
<?php the_time('n/j/Y'); ?>
単純にしらなかった

「get_post_time()」で曜日を英語表記

ちなみに英語表記をしたかったら「get_post_time()」を使う

// 月とか曜日とか英語表記したい時に使う
<?php echo get_post_time('n/j/Y'); ?>

参考

▼Wordpressのthe_date()やthe_time()で日付を英語で表示出来なくなったのでget_post_time()を使った
http://d.hatena.ne.jp/kanonji/20110711/1310355313

よく使うフォーマット

毎回調べるのも面倒なのでよく使うものだけ列挙

【 年 】
Y // 2018
y // 18

【 月 】
F // 1月,January
M // 1月,Jan
m // 01
n // 1

【 日 】
d // 01
j // 1

【 曜日 】
l // 月曜日,Monday
D // 月,Mon

【 時 】
a // am,pm
A // AM,PM
h // 01から12
g // 1から12
H // 01から23
G // 1から23

【 分 】
i // 00

【 秒 】
s // 00
英語の部分は「get_post_time()」を使った場合に表示されるやつ

追記:分と秒は0なしがないから「intval()」を使う

分と秒は0なしがないみたいで「intval()」を使って整数にすれば0なしが使えるっぽい

<?php 
// 出力例:2018/9/12 9時3分9秒
echo date('Y/n/j G時') . intval(date('i')) . '分' . intval(date('s')) . '秒'; 
?>

ループの中で同じ日の記事は条件分岐でまとめられたりするんだろうか(同じ日はまとめてdivで囲む的な)
あまりクライアントワークで使う気はしないけど、どこかで練習がてら暇な時にやってみようかなー