Na jednej z grup na FB Artur opisał następujący problem:
Mam na swoim blogu szablon i wszystko byłoby w porządku gdyby nie problem z datą – wyświetla mi ją jako MM.DD.RRRR, a chciałbym by pokazywało ją po naszemu. W opcjach mam ustawione wyświetlanie daty na „3 listopada 2015”.
Szybka analiza motywu ujawniła, że na format daty, podany jest na sztywno w jednym z plików motywu w taki sposób: get_the_date('m.d.Y');
. Dokładne sprawdzenie wykluczyło możliwość stworzenia w prosty sposób motywu potomnego, bo zaciąganie pliku nie jest zrobione w zalecany dla motywu potomnego sposób.
Co można zrobić w takiej sytuacji?
Można wytworzyć motyw potomny i podmienić odpowiednie pliki, ale tak jak pisałem wcześniej ten motyw trzeba by prawie cały skopiować, albo przynajmniej zrobić to w dośc paskudny sposób.
Nie poddaję się jednak i szukam innego sposobu. Okazuje się, że moje ulubione akcje i filtry i w tym przypadku dadzą sobie bez kłopotu radę. Zastosowałem filtr get_the_date
add_filter('get_the_date', 'iworks_get_the_date', 10, 3); function iworks_get_the_date($the_date, $d, $post) { return mysql2date( get_option( 'date_format' ), $post->post_date ); } |
Jak użyć podany kod?
Masz 3 rozwiązania:
- wrzuć załączony plik do folderu
wp-content/plugins
, a potem włącz wtyczkę - wrzuć załączony plik do folderu
wp-content/mu-plugins
- dołącz kod do pliku
functions.php
aktualnie używanego motywu
fot. © Dafne Cholet 2011-01-20
Marcin Bazanowski
Bardzo fajny filtr, aczkolwiek masz tam mały duży błąd :)
$post to moze być albo obiekt WP_Post albo samo ID. Więc tak jak w codexie, trzeba sprawdzić z czym mamy do czynienia, co by nam się system nie wywalił, że chcemy się dostać do daty z int’a :D
Pozdrawiam :)
Marcin Pietrzak
Nie Marcinie, nie mam tam błędu. Pierwszą linijką funkcji, na której końcu znajduje się wywołenie filtra to:
$post = get_post( $post );
A chwilę póżniej sprawdzanie czy $post istnieje.
Więc w tym konkretnym miejscu to zawsze jest obiekt.
W innym przypadku, mógłbyś mieć rację ;-)