WordPress the_date() Fonksiyonunun Düzgün Çalışmaması Sorunu

Az önce üzerinde çalıştığım temada, listelediğim postlar için her bir postun kendi tarihini de while içerisinde sunmak istiyordum ki, kod şöyle bir şekildeydi;

<?php 
$args = array('posts_per_page' => 5);
  $myposts = get_posts($args);
  foreach($myposts as $post):setup_postdata( $post ); ?>
     <li>
      <span><?php the_date('d M Y'); ?> &middot;</span>
      <a href="<?php the_permalink();?>">
       <?php the_title();?>
      </a>
     </li>
<?php endforeach; wp_reset_postdata();?>

Fakat bu kodun verdiği çıktıda dikkatimi çeken şey, postlarda bir tarihde birden fazla içerik girilmişse, listelenen aynı tarihli ikinci post için the_date() fonksiyonu herhangi bir şey basmıyordu.

the_date çıktısı

WordPress Codex üzerinde the_date fonksiyonun sayfasında bu durumdan özel not olarak bahsedilmiş.

SPECIAL NOTE: When there are multiple posts on a page published under the SAME DAY, the_date() only displays the date for the first post (that is, the first instance of the_date()).

Bu durum her ne kadar bazı durumlarda güzel olsa da, benim burada istediğim şey, her post için tarih göstermek. Bunun çözümünü de WordPress'in çekirdek kodlarını inceleyerek bulduk;

<?php 
$args = array('posts_per_page' => 5);
  $myposts = get_posts($args);
  foreach($myposts as $post):setup_postdata( $post ); ?>
     <li>
      <span>
      <?php 
            unset($previousday); 
            the_date('d M Y');
      ?>
      &middot;</span>
      <a href="<?php the_permalink();?>">
       <?php the_title();?>
      </a>
     </li>
<?php endforeach; wp_reset_postdata();?>

Fonsiyon tarafından kullanılan $previousday PHP değişkenini unset ederek, the_date fonksiyonu tekrar çağırıldığında istenildiği gibi çalışacaktır.

the_date istenilen Çıktı

Yorumları Göster veya Yeni Yorum Yaz