Jak zamieścić na stronie licznik wyświetleń wpisu

Jeśli chcemy pokazać światu jak popularne są nasze wpisy, to najlepszą metodą jest umieszczenie obok każdego z nich prostego licznika wyświetleń. Istnieje kilka wtyczek, dzięki którym dodamy taką informację do naszej strony, a jedną z najpopularniejszych jest WP-PostViews.

Dodanie licznika wyświetleń do używanego motywu

Rozszerzenie to, podobnie jak większość jemu podobnych, wymaga od nas dodania do szablonu wywołania specjalnej funkcji, która pokazuje liczbę wyświetleń wpisu, jednocześnie aktualizując ją w bazie. Ten etap instalacji stanowi zwykle największy problem dla mało zaawansowanych użytkowników – postaram się więc pokazać go w możliwie prosty sposób.

Najłatwiejszym sposobem jest dodanie licznika odwiedzin wpisu nad lub pod jego treścią. Aby to zrobić nie trzeba modyfikować plików szablonu – wystarczy do pliku functions.php lub pliku wtyczki dodać krótki kod. Ten wstawi liczbę wyświetleń nad treścią wpisu:

function wpzen_show_views($content) {
	$content = the_views(false).$content;
	return $content;
}
add_filter('the_content', 'wpzen_show_views');

a ten pod treścią:

function wpzen_show_views($content) {
	$content .= the_views(false);
	return $content;
}
add_filter('the_content', 'wpzen_show_views');

Warto dodać, że liczba wpisów będzie wyświetlana na wszystkich stronach (na liście wpisów, w archiwach oraz na stronie pojedynczego wpisu), ale zwiększana będzie tylko przy wyświetleniu strony pojedynczego wpisu. Trzeba również pamiętać, że wtyczka zlicza każdą odsłonę wpisu, tak więc jeśli jeden użytkownik obejrzy dany wpis kilka razy, to każdorazowo wartość licznika zostanie zwiększona.

WP-PageViewsNieco trudniejszą metodą jest dodanie wywołania funkcji the_views do odpowiedniego pliku szablonu. Ten sposób daje nam większą kontrolę nad tym, gdzie będzie wyświetlana liczba wyświetleń wpisu. Przykładowo, jeśli chcemy do motywu Twenty Thirteen dodać licznik do nagłówka wpisu (obok informacji o autorze), to w pliku content.php musimy znaleźć taką linię:


i za nią dodać następujący kod:


Całość powinna wyglądać mniej więcej tak:


Nie jest to eleganckie rozwiązanie (bardziej odpowiednie byłoby dodanie wywołania the_views w funkcji twentythirteen_entry_meta, znajdującej się w pliku functions.php motywu), ale na pewno jest ono najprostsze. Oczywiście w każdym szablonie miejsce, w którym należy wstawić odpowiedni kod, będzie wyglądało inaczej.

Konfiguracja wtyczki WP-PageViews

Konfiguracja wtyczki WP-PageViews jest stosunkowo prosta. Aby zmienić ustawienia rozszerzenia należy w panelu administracyjnym przejść do sekcji Ustawienia → PageViews.

WP-PageViews - ustawieniaCount Views From pozwala na ograniczenie zliczania wyświetleń do wybranej grupy odwiedzających. Do wyboru mamy Everyone (zliczanie wszystkich wyświetleń), Guests Only (tylko niezalogowani odwiedzający) i Registered Users Only (tylko zalogowani odwiedzający). Opcja Exclude Bot Views pozwala na pomijanie przy zliczaniu wyświetleń tych wykonanych przez roboty wyszukiwarek. W polu Views Template możemy zmodyfikować tekst, który pojawi się obok liczby wyświetleń wpisu.

WP-PageViews - ustawieniaW sekcji Display Options możemy określić na jakich stronach będzie wyświetlany licznik wyświetleń wpisu. Opcje te będą przydatne gdy (dla ułatwienia) dodamy wywołanie funkcji the_views bez identyfikowania aktualnie przeglądanej strony (na przykład w przypadku pierwszej z zaprezentowanych przeze mnie metod). Dla każdej z obsługiwanych stron możemy określić, kto będzie widział liczniki wyświetleń wpisów: Display to everyone (wszyscy), Display to registered users only (tylko zalogowani użytkownicy) lub Don’t display on… (nikt). Ustawienia te są dostępne dla następujących stron: Home Page (strona główna), Single Posts (pojedynczy wpis), Pages (strona), Archive Pages (archiwa), Search Pages (wyniki wyszukiwania) i Other Pages (pozostałe strony).

WP-PageViewsLiczba wyświetleń jest również dostępna w panelu administracyjnym. Listę wpisów i stron można sortować według tej liczby, tak więc łatwo możemy dotrzeć do najbardziej i najmniej popularnych materiałów.

WP-PageViews - widgetWtyczka WP-PageViews posiada wbudowany widget wyświetlający najczęściej (lub najrzadziej) czytane wpisy i strony. Aby z niego skorzystać wystarczy przejść do sekcji Wygląd → Widgety i przeciągnąć widget Views do wybranego panelu bocznego.

Ustawienia widgetu pozwalają na wybór typu listy (najbardziej lub najmniej popularne teksty) oraz rodzaju treści, które mają się na niej znajdować (wpisy i strony, tylko wpisy lub tylko strony). Możemy także określić liczbę prezentowanych tekstów (domyślnie jest ich dziesięć) oraz ograniczyć długość wyświetlanych tytułów (domyślnie 200 znaków; wpisanie zera wyłącza tę funkcję). Mamy również możliwość wyboru kategorii, z których mają być pobierane wpisy (niestety, musimy ręcznie wprowadzić ich identyfikatory), dzięki czemu w prosty sposób stworzymy listę typu „najpopularniejsze wpisy w kategorii XYZ”.

Kompatybilność z wtyczkami cache

Rozszerzenie WP-PostViews jest częściowo kompatybilne z wtyczkami cache, takimi jak W3 Total Cache lub WP Super Cache. Przy włączonym cache zliczanie wyświetleń odbywa się bez problemów. Jednak z uwagi na sposób działania mechanizmu cache, wyświetlane liczby nie są aktualne – pochodzą z momentu utworzenia obrazu strony w cache i są odświeżane dopiero gdy obraz ten zostanie wygenerowany ponownie (na przykład po dodaniu komentarza do wpisu lub po upłynięciu określonego w ustawieniach cache czasu).

Problem ten można obejść korzystając z wtyczki Ajax The Views, która za pomocą Ajaxa pobiera aktualną liczbę wyświetleń dla każdego wpisu, dzięki czemu widoczne na stronie liczniki będą zawsze pokazywać poprawne wartości. Jednak w przypadku serwisów z dużym ruchem może to mieć negatywny wpływ na wydajność (każde pobranie wartości licznika to dodatkowe zapytanie do bazy danych) i zniwelować korzyści, jakie daje cache.

Bezpośredni link