Ostatnio pracowaliśmy nad projektem strony klienta, który wymagał od nas wyświetlania miesięcznych archiwów ułożonych według roku na pasku bocznym. Prawdopodobnie ich projektantowi było bardzo łatwo zrobić makietę w Photoshopie, ale było to nieco skomplikowane do osiągnięcia w WordPress. Zobacz poniższy obrazek:

Teraz prawdopodobnie zastanawiasz się, dlaczego trudno było wprowadzić go do WordPressa, gdy wp_get_archives () wymienia archiwa miesięcznie z rokiem obok? To dlatego, że ten klient chciał pokazać rok tylko raz. Nie ma rzeczywistego sposobu na dostosowanie stylizacji funkcji wp_get_archives ().
Szukaliśmy rozwiązań w sieci i nic nie znaleźliśmy. Ten problem musi być naprawdę rzadki, jednak odkryliśmy, że Andrew Appleton miał podobny problem i miał go naprawić. Użyliśmy jego kodów z drobną modyfikacją.
Kod Andrew nie miał parametru limitu dla archiwów. Więc użycie jego kodów oznaczałoby, że pokażesz wszystkie archiwa miesiąca. Wyobraź sobie, że dla bloga, który ma 5 lat. Dodaliśmy więc parametr limit, który pozwolił nam ograniczyć liczbę wyświetlanych miesięcy do 18 w danym momencie.
W zasadzie to, co musisz zrobić, to wkleić następujący kod do motywu pasek boczny.php plik lub dowolny inny plik, w którym chcesz wyświetlić niestandardowe archiwa WordPress:
get_results("SELECT DISTINCT MONTH( post_date ) AS month , YEAR( post_date ) AS year, COUNT( id ) as post_count FROM $wpdb->posts WHERE post_status = 'publish' and post_date < = now () and post_type = 'post' GROUP BY month, year ORDER BY post_date DESC");
foreach ($months as $month) :
$year_current = $month - >year;
if ($year_current != $year_prev) {
if ($year_prev != null) {?>
< li class = "archiwum-rok" > rok;?>< / li>
Uwaga: Jeśli chcesz zmienić liczbę wyświetlanych miesięcy, musisz zmienić linię 19, w której bieżąca wartość limitu $jest ustawiona na 18.
Nasz CSS wyglądał trochę tak:
.widget-archive{padding: 0 0 40px 0; float: left; width: 235px;}
.widget-archive ul {margin: 0;}
.widget-archive li {margin: 0; padding: 0;}
.widget-archive li a{ border-left: 1px solid #d6d7d7; padding: 5px 0 3px 10px; margin: 0 0 0 55px; display: block;}
li. archive-year{float: left; font-family: Helvetica, Arial, san-serif; padding: 5px 0 3px 10px; color: # ed1a1c;}
li. archive-year a{color:#ed1a1c; margin: 0; border: 0px; padding: 0;}
Więc robiąc to w ten sposób, mieliśmy ostateczny wynik, aby wyglądać tak:

Teraz, jeśli chcesz pokazać liczbę postów w każdym miesiącu, musisz dodać ten bit kodu w dowolnym miejscu między wierszami 12-16 powyższego kodu:
post_count;?>
Jeden przykład tego, co możesz zrobić z liczbą postów i wszystko można zobaczyć na poniższym obrazku:

Powyższe zdjęcie pochodzi ze strony Andrew Appletona, ponieważ takie rozwiązanie wymyślił, z którego zaczerpnęliśmy nasz styl. Jeśli chcesz zobaczyć css dla jego stylów, po prostu kliknij link na jego stronie internetowej powyżej.
Czy znasz łatwiejszy sposób na osiągnięcie tego? Czy będziesz dostosowywać wyświetlanie swoich archiwów WordPress w następnym projekcie? Podziel się swoimi przemyśleniami w polu komentarza poniżej.