私は各投稿の日付を取得するために以下を使っています:
while (have_posts()) : the_post();
//some html
<li class="icon-date"><?php the_date('Y-m-d');?></li>
<li class="icon-time"><?php the_date('H:i:s');?></li>
しかし、私は最初の投稿の日付を取得しているだけなのはなぜですか?
私は同じ問題に何度か遭遇しました、過去に以下の変更は私のために働きました:
while (have_posts()) : the_post();
//some html
<li class="icon-date"><?php echo get_the_date( 'Y-m-d' ); ?></li>
<li class="icon-time"><?php the_time( 'H:i:s' ); ?></li>
the_date()
の代わりにget_the_date()
を使用してください。
知っておくべき唯一のことは、get_the_date()
によって返された値がエコーされなければならないということです。
Codexページを見てくださいthe_date()
については 特別な注意事項 があります。
同じ日に公開されたページに複数の投稿がある場合、the_date()は最初の投稿の日付(つまりthe_date()の最初のインスタンス)のみを表示します。同じ日に公開された投稿の日付を繰り返すには、テンプレートタグthe_time()またはget_the_date()(3.0以降)を日付固有のフォーマット文字列と共に使用する必要があります。
また、get_the_date()
がAdminに返される形式を制御したい場合は、get_option('date_format')
を使用できます。この方法であなたが管理者で日付フォーマットを変更するならば、これらの変更は私もあなたのコードでなされるでしょう。
while (have_posts()) : the_post();
//some html
<li class="icon-date"><?php echo get_the_date( get_option('date_format') ); ?></li>
<li class="icon-time"><?php the_time( 'H:i:s' ); ?></li>
同じ日に公開された に複数の投稿がある場合、the_date()は最初の投稿の日付(つまり、the_date()の最初のインスタンス) のみを表示します。同じ日に公開された投稿の日付を繰り返すには、テンプレートタグ the_time() または get_the_date() (3.0以降)を 日付固有のフォーマット文字列 を使用してください。管理インターフェイスに設定された日付を追加するために使用します。
詳しくは このページ をご覧ください。
したがって、wordpress codexの参照によれば、正しいコードは次のようになります。
while (have_posts()) : the_post();
//some html
<li class="icon-date"><?php echo get_the_date('Y-m-d');?></li>
<li class="icon-time"><?php the_time('H:i:s');?></li>