2013-08-11 15 views
12

Mam pasek boczny, na którym chcę wyświetlać najnowsze posty. Teraz pokazuje tytuł, datę i fragment. Data pokazuje czas, którego chcę się pozbyć. Pokażę datę używając tego: $ niedawnej [ „post_date”]Jak sformatować datę wpisu w Wordpress?

<?php 
$args = array('numberposts' => '3'); 
$recent_posts = wp_get_recent_posts($args); 
foreach($recent_posts as $recent){ 
    echo '<li id="sidebar_text"><b>'.$recent["post_title"].'</b></li><li style="font-size:12px">'.$recent["post_date"].'</li><li><i style="font-size:15px">'.$recent["post_excerpt"].'</i><a href="'.get_permalink($recent["ID"]).'"> Read More</a></li>'; 
    } 
?> 

pokazuje datę takiego: 11.08.2013 18:29:04 i chciałbym to tak 11.08.2013 i bez czasu. Z góry dziękuję.

Odpowiedz

21
date('n-j-Y', strtotime($recent['post_date'])); 

Formatuje to tak, jak chcesz. Wystarczy zastąpić $recent['post_date'] w swojej pętli tym.

+0

Działa, dziękuję – Mike

+0

Odpowiedź Syfaro uzyska pożądany wynik, ale jeśli chcesz, aby Twoja strona konsekwentnie wyświetlała daty w ten sam sposób, lepiej zmienić format wyświetlania dat w "Ustawieniach"> " Sekcja ogólna (szczególnie ważne, jeśli jest to część wtyczki, którą rozpowszechniasz dla innych osób, ponieważ będą chcieli zobaczyć swój format daty lokalnej). Następnie możesz użyć funkcji get_the_date, która domyślnie nie zwraca czasu. Udokumentowane tutaj: http://www.codesynthesis.co.uk/code-snippets/formatting-the-post-date-in-wordpress –

+0

użyj 'get_option ('date_format')' aby uzyskać domyślny format daty zdefiniowany w Ustawieniach > Ogólne> Format daty – farinspace

4

Chociaż odpowiedź Syfaro jest prawidłowa, najlepszą praktyką jest wykorzystanie do tego własnej funkcji WordPress.

get_the_date

ta domyślnie formacie określonym w WordPress Admin Settings (Ustawienia -> Ogólne), więc daje bardziej dostępne rozwiązanie dla przyszłej edycji - szczególnie przydatne, jeśli rzucisz swój kod w wielu miejscach, lub więcej co ważne, jeśli publikujesz go publicznie.

Ponadto, nie zapomnij escape output - sprawdź esc_html i esc_html_e

1

Wymień $recent["post_date"] z mysql2date('n-j-Y', $recent['post_date']).

Powiązane problemy