Tagi w WordPress

21 lutego 2008

tag-cloud.jpgNie od zawsze w popularnym systemie blogowym WordPress był wbudowany mechanizm tagów. Przyznam, że bardzo mnie to zdziwiło gdy po raz pierwszy zainstalowałem to oprogramowanie. Ludzie radzili sobie poprzez użycie pluginów. Chyba najpopularniejszy to Ultimate Tag Warrior.

Jakiś czas temu autorzy WordPress dodali wreszcie tagi do blogów. Wpisuje się je w pole tuż pod postem. Jednak znaczna większość szablonów ich nie obsługuje. Dlatego przedstawiam krótką instrukcję jak wyświetlać tagi na swoim blogu.

Najpierw pojedynczy wpis. Wystarczy w pliku PHP (przeważnie index.php i/lub single.php) dodać taki krótki kod:

PHP:
  1. <?php the_tags(); ?>

Oczywiście wybór miejsca wstawienia zależy już tylko od Was. Powyższy kod da taki efekt: Tags: tag1, tag2. Chyba nie muszę wspominać, że w miejsce tag1, tag2 pojawią się Wasze tagi ;)

Jednak zapewne większość z czytających ten wpis chciałaby aby wszystko wyświetlało się w naszym ojczystym języku dlatego pokazuję rozbudowaną metodę:

PHP:
  1. <?php the_tags('przed', 'separator', 'po'); ?>

Opis wartości przekazywanych do funkcji:
przed - tekst, który pojawi się przed tagami np. Moje tagi
separator - znak/tekst, który będzie oddzielał poszczególne tagi
po - tekst, który pojawi się na końcu listy tagów

A teraz przykład:

PHP:
  1. <?php the_tags('Moje tagi: ', ', ', '.'); ?>

Wyświetli nam się coś takiego: Moje tagi: tag1, tag2. Dla tego wpisu będzie to wyglądało tak:

Moje tagi: , , .

Ale czym byłyby tagi bez tzw. chmury tagów? :) Służy do tego poniższa funkcja:

PHP:
  1. <?php wp_tag_cloud(); ?>

Jednak warto skorzystać z paru parametrów, które można do niej przekazać. Oto ich lista:

  • smallest - rozmiar czcionki najmniej popularnych tagów
  • largest - rozmiar czcionki najbardziej popularnych tagów
  • unit - jednostka miary czcionki użytej do wyświetlenia tagów (mogą to być np. px, pt, em)
  • number - liczba tagów, które zostaną wyświetlone (wstaw 0 aby wyświetlić wszystkie)
  • format - sposób wyświetlania chmurki:
    • flat - tagi oddzielone spacją (wartość domyślna)
    • list - tagi jako lista, jej wygląd możesz zmieniać poprzez kod CSS dla klasy wp-tag-cloud
    • array - tagi zostaną zwrócone jako tablica
  • orderby - sortowanie tagów:
    • name - według nazwy (sortowanie po alfabecie - wartość domyślna)
    • count - według popularności czyli częstotliwości użycia
  • order - kolejność wyświetlania (koniecznie DUŻYMI literami):
    • ASC - rosnąca czyli od A do Z lub od najmniej popularnych tagów do najbardziej popularnych (wartość domyślna)
    • DESC - malejąca, odwrotnie do ASC :)
  • exclude - lista numerów term_id, oddzielane przecinkami. Dla przykładu jeżeli podamy tu wartość '5,27' to tagi o numerach 5 i 27 NIE będą wyświetlane w chmurze tagów, bez względu na ich popularność. Domyślnie ten parametr jest pusty.
  • include - lista numerów term_id, oddzielane przecinkami. Dla przykładu jeżeli podamy tu wartość '5,27' to zostaną wyświetlone TYLKO tagi o numerach term_id 5 i 27. Domyślnie wyświetlane są wszystkie tagi a więc tak jakby w tym parametrze zostały wpisane term_id wszystkich tagów.

Na koniec przykład wprost z tego blogu (kod wstawiony w sidebar.php):

PHP:
  1. <div style="text-align: justify; line-height: 1.2; letter-spacing: 0.5pt; word-spacing: 2pt;">
  2. <?php wp_tag_cloud('smallest=8&largest=22'); ?>
  3. </div>

Jak widać dodałem jeszcze trochę kodu CSS dla poprawy wyglądu chmurki. Od Was już zależy, które jeszcze parametry podacie spośród wymienionych powyżej. Z prawej strony na tej stronie możecie zobaczyć efekt działania.

Dodaj komentarz

21 odpowiedzi dla tego wpisu

  1. OQL napisał:

    mnie wkurza że nie mogę w panelu administracyjnym wybierać tagów z listy – tylko ręcznie wklepywać – jest jakaś możliwość żegy tego nie robić?

  2. MariuszT napisał:

    Niestety nie znam rozwiązania. Miałem kiedyś plugin Ultimate Tag Warrior kiedy tagi nie były jeszcze wbudowane w wordpressa. Z tego co kojarzę to tam była lista tagów i wystarczyło kliknąć na wybrany aby dodał się do artykułu. Tyle, że to jest osobny system tagów a nie rozszerzenie funkcjonalności wordpressa. Chociaż może teraz coś się zmieniło… No nie wiem, musisz poszukać pluginów, pewnie jest jakieś rozwiązanie.

  3. OQL napisał:

    w Ultimate Tag Warrior własnie tak było jak mówisz – można było z listingu wybierać – teraz za cholery nie potrafię sobie poradzić

  4. OQL napisał:

    generalnie to mnie zmusiłeś do poszukiwań – no i znalazłem Simple Tags http://wordpress.org/extend/plugins/simple-tags/

  5. MariuszT napisał:

    Hmmm to może i ja się zainteresuje :) Zaraz popatrzę, dzięki za link.

  6. OQL napisał:

    coś się pokiepściło – każdy mój tag i w chmurze i pod wpisem linkuje do wszystkich tagów naraz – nie umiem tego naprawić niestety

  7. MariuszT napisał:

    No właśnie widzę na Twoim blogu. Kiepska sprawa :/ Dziwne, bardzo dziwne… Ale nie wiem co robiłeś więc nic Ci nie doradzę :/ Przypomnij sobie jakie zmiany wprowadzałeś i zacznij je wycofywać aż się naprawi.

  8. wojtek napisał:

    Witam
    A jak wyświetlić churę tagow tak zeby zmienic wartosc title dla kazdego tagu ?

  9. MariuszT napisał:

    Hmmm …. Wydaje mi się, że jedyny sposób to ustawić „format” jako „array” i samemu w PHP zrobić cały wygląd.

  10. wojtek napisał:

    No tak, ale to dziala dopiero chybw w wersji 2.5, a ja uzywam 2.3.
    $tab = wp_tag_cloud(‘format=array’);
    var_dump($tab);
    nic mi nie zwraca
    ale dzieki !!

  11. MariuszT napisał:

    Faktycznie format=array zostało dodane dopiero w 2.5. Radzę więc zaktualizować WP :P

    Pobieżnie przeglądałem inne dostępne funkcje ale wszystkie dotyczą obsługi tagów dołączonych do konkretnego wpisu natomiast za chmurę tagów odpowiedzialna jest tylko funkcja wp_tag_cloud. Jest jeszcze wp_generate_tag_cloud ale nie jest udokumentowana więc sam musisz sprawdzić w źródle jak działa i co robi.

  12. g napisał:

    dzięki, pomocne ;)

  13. Fotograf napisał:

    Dzięki za ten post – szukałem takiego rozwiazania chyba z 5 godzin – aż natknąłem się na Twój blog!
    Dzięki Twojej instrukcji zrobiłem tagi w kilka minut i cieszę się nową niezwykle skuteczną opcją :) .
    Jeszcze raz dzięki, pozdrawiam

  14. artie napisał:

    dobrze trafiłem, z tym że inaczej to wykorzystałem …
    stworzyłem tampletke i zrobiłem Tagi na stronie
    dzięki za tipsa ;)

  15. Anonim napisał:

    To jest moje ulubione miejsce :-) . Zawsze wracam po to wp_tag_cloud(); gdy zapomne. Jest jeszcze inne takie miejsce w które wracam po kilka takich kodów jak zapomne. Zawsze wyskakuje na 1. Prawie zapomniałem już po co tu przyszedłem więc ide. Dzięki za kody.

  16. Piotrek napisał:

    to ja mam banalne pytanie: gdzie mam konkretnie wkleić na przykład

    żeby tagi zawsze i automatycznie wyświetlały się pod postem?

  17. MariuszT napisał:

    Najczęściej odpowiedniego miejsca trzeba szukać w pliku single.php. To on odpowiada za pojedynczy post. Różne skórki do wordpressa są różnie zbudowane, zawsze trzeba trochę poszperać :)

  18. Criss napisał:

    Jest znany jakiś sposób na zdefiniowanie odmiennego dla każdej ze stron tagów tytułu lub opisu?
    Staram się nadać unikalności każdej ze stron taga, myślę że powyższe byłoby najłatwiejsze.

  19. MariuszT napisał:

    Nic mi nie przychodzi do głowy. Nie znam żadnego sposobu/pluginu którym mógłbyś sobie poradzić z tym problemem.

  20. Criss napisał:

    Ogólnie mówiąc w bieżącej wersji WP na stronie edycji strony kategorii czy tagów jest pole umożliwiające zdefiniowanie jej opisu. Z tego co się zorientowałem niewiele themów tę funkcję obsługuje, niestety mój świeżo zakupiony templat na themeforest także.

  21. Criss napisał:

    Dobra, żeby zadziałało w plik szablonu należy w stosownym dla siebie miejscu wkleić: $tag = $wp_query->get_queried_object();
    echo $tag->description;

Odpowiedz



Podobne wpisy: