Tworzymy własny „shortcode” wyświetlający ogólną liczbę wpisów i komentarzy
- Piotr Bartczak
- 14 gru 2009
- 2 minut(y) czytania
Naszym zadaniem będzie wyświetlenie w dowolnym miejscu treści liczby wszystkich opublikowanych wpisów i komentarzy. W tym celu zapoznamy się nieco bliżej z jedną z ciekawszych funkcji WordPressa – znacznikami shortcode.
Narzędzie, którym się posłużymy
Słowem „shortcode” określa się specjalne znaczniki, które po umieszczeniu w treści wpisu generują odpowiednią mieszankę kodu HTML. Przykładowo:
wyświetla galerię zdjęć, które zostały dodane do wpisu,
[ratings] wyświetla system ocen wpisu (WP-PostRatings),
Co powiedziałbyś na okazyjne videoposty na WPNinja?
Jestem za. (74%, głosów: 74)
Jestem przeciw. (21%, głosów: 21)
Nie mam zdania. (5%, głosów: 5)
Głosowało osób: 100
Loading ... wyświetla ankietę o ID = 2 (WP-Polls),
[youtube width="400" height="300"]eBGIQ7ZuuiU[/youtube] wyświetla określony film z serwisu YouTube o podanych rozmiarach (youtube with style).
Na chwilę obecną WordPress posiada tylko jeden standardowy shortcode – , reszta to już sprawka odpowiednich wtyczek. Nic nie stoi jednak na przeszkodzie aby stworzyć własny shortcode.
I wbrew pozorom nie jest to wcale trudne!
Efekt, który chcemy osiągnąć
Naszym zadaniem będzie stworzenie znacznika shortcode, który wstawiony w dowolnym miejscu treści wyświetli liczbę wszystkich opublikowanych wpisów i komentarzy.
Kawałek kodu PHP, który pobierze z bazy odpowiednie dane już mamy – wystarczy sięgnąć po artykuł Jak wyświetlić łączną ilość wpisów i komentarzy.
Aktualizacja (15.12.2009): Dzięki uprzejmości Grzegorza mamy poprawiony kod PHP.
Moglibyśmy tutaj wykorzystać jedną z wtyczek opisanych w artykule PHP we wpisach i widgetach i byłoby pozamiatane. Nam jednak zależy na trzech istotnych rzeczach:
zapewnienie komfortu użytkowania,
ograniczenie niebezpieczeństwa,
unikanie kopiowania kodu.
To tyle jeśli chodzi o teorię. Teraz to co tygrysy lubią najbardziej czyli praktyka!
Własny shortcode – tworzenie
Poniższy kod dodajemy do pliku functions.php (plik znajduje się w katalogu aktualnie używanego motywu):
function pokaz_statystyki ($atrybuty) {
extract (shortcode_atts (array('typ' => ''), $atrybuty));
if ($typ == "ilosc-wpisow") {
$posts_stats = wp_count_posts();
$wynik = $posts_stats->publish;
}
elseif ($typ == "ilosc-komentarzy") {
$comments_stats = wp_count_comments();
$wynik = $comments_stats->approved;
}
return $wynik;
}
add_shortcode('statystyki', 'pokaz_statystyki');
Najważniejszy zapis znajduje się w ostatnim wierszu – za jego pośrednictwem został dodany shortcode o nazwie „statystyki”. Od teraz, za każdym razem gdy w treści wpisu pojawi się [statystyki] zostanie uruchomiona funkcja „pokaz_statystyki” (wiersze 1-14).
W wierszu 2. przejmowana jest wartość atrybutu „typ”. W wierszu 3. i 7. widać, że shortcode reaguje na dwie wartości atrybutu – „ilosc-wpisów” oraz „ilosc-komentarzy”. W zależności od tego jaki typ wybierzemy zostanie pobrana odpowiednia wartość z bazy danych.
Więcej o samym tworzeniu znaczników shortcode:
Shortcode API w encyklopedii WordPressa (EN)
WordPress Shortcode API autorstwa Maćka Palmowskiego (PL).
Własny shortcode – korzystanie
Zgodnie z tym co stworzyliśmy powyżej możemy teraz w dowolnym miejscu w treści wpisu bądź strony zamieścić shortcode:
[statystyki typ="ilosc-wpisow"] wyświetli ilość wszystkich opublikowanych wpisów,
[statystyki typ="ilosc-komentarzy"] wyświetli ilość wszystkich zatwierdzonych komentarzy.
Koniec. Prawda, że nie było to zbyt trudne? :-)
Zachęcam do własnych eksperymentów z tą funkcjonalnością WordPressa – w razie problemów służę pomocą za pośrednictwem poniższych komentarzy.
Comments