Data po polsku
Dotychczas temat, który stworzyłem dla mojego bloga (na bazie jakiegoś szablonu dla WordPressa) wyświetlał daty wpisów i komentarzy w oparciu o prosty kod PHP i wbudowane funkcje WP, np. dla wpisów:
<?php the_time('l, j M Y @ G:i'); ?>
Takie rozwiązanie ma wadę – parametr M każe wyświetlać skrót miesiąca w stylu „lut” dla lutego. Co prawda opcja F wyświetla pełną nazwę miesiąca, ale efekt jest równie brzydki – otrzymujemy wtedy datę typu „25 luty 2007”, co jest, rzecz jasna, językowo niepoprawne. Istnieje wtyczka dla WP, która rozwiązuje ten problem, ale tylko dla dat wpisów, komentarze pozostają, jak były. Postanowiłem coś z tym zrobić. Modyfikacja silnika odpadała, bowiem trzeba by ją przeprowadzać przy każdej aktualizacji WP. Dodałem więc funkcję w pliku header.php w moim temacie:
<?php
function the_czas($naszadata,$formatdaty='') {
$miesiaca[1]='stycznia';
$miesiaca[2]='lutego';
$miesiaca[3]='marca';
$miesiaca[4]='kwietnia';
$miesiaca[5]='maja';
$miesiaca[6]='czerwca';
$miesiaca[7]='lipca';
$miesiaca[8]='sierpnia';
$miesiaca[9]='września';
$miesiaca[10]='października';
$miesiaca[11]='listopada';
$miesiaca[12]='grudnia';
/* Ustawiamy lokalizację, coby z strftime() choć dzień tygodnia mieć bez kombinowania */
setlocale(LC_TIME,'pl_PL.UTF8');
if ($formatdaty === 'data') {
echo strftime('%A',$naszadata).date(', j ',$naszadata).$miesiaca[date('n',$naszadata)].date(' Y',$naszadata);
} elseif ($formatdaty === 'miesiac_rok') {
echo $miesiaca[date('n',$naszadata)].date(' Y',$naszadata);
} else {
echo strftime('%A',$naszadata).date(', j ',$naszadata).$miesiaca[date('n',$naszadata)].date(' Y @ G:i',$naszadata);
}
}
?>
Później zmodyfikowałem inne pliki. Wymagało to odrobinki pracy, ale po paru minutach wszędzie daty zaczęły wyglądać normalnie. Dla przykładu: gdy chcemy uzyskać format „sobota, 10 lutego 2007 @ 22:29” wywołujemy funkcję dla wpisów
<?php the_czas(get_the_time('U')); ?>
czy też komentarzy
<?php the_czas(get_comment_date('U')); ?>
Aby uzyskać w tytule archiwów napis typu „Archiwum z lipca 2006” siekamy
Archiwum z <?php the_czas(get_the_time('U'),'miesiac_rok'); ?>
