Użycie miniaturek w Wordpresie

.

Miniaturki dla wpisów były przez długi czas brakującą cechą Wordpresa. Znaczące zmiany w tej materii przyniosła dopiero wersja 2.9. Niniejszy wpis ma na celu pokazać jak używać nową funkcjonalność.

W wielu, zwłaszcza starszych motywach dostęp do funkcji umożliwiających dostęp do miniaturek jest domyślnie włączony. Stąd też w pierwszej kolejności należy zarejestować wsparcie dla nich co robi się z pomocą funkcji add_theme_support.

Popatrzymy na przykład użycia:


add_action( 'after_setup_theme','thumbnail_support');
function thumbnail_support(){
  add_theme_support( 'post-thumbnails' );
  set_post_thumbnail_size( 100, 100, true );
  add_image_size( 'single-post-thumb', 300, 2000 );
}

W powyższym przykładzie dodanie miniaturek zostało zrealizowane za pomocą akcji after_setup_theme.
Dodatkowo ustawione zostały domyślne wymiary miniaturki oraz wymiary dla obrazka wyświetlanego razem z pełnym wpisem.
Kod umieścić w pliku functions.php aktywnego motywu.

Dodawanie miniaturki do wpisu

Kolejnym krokiem do wykonana jest dodanie miniaturki do wybranego wpisu, co można zrobić z poziomu panelu administracyjnego i zakładki Wpisy. Otwieramy więc rządany wpis i odnajdujemy okieno Ikona wpisu, które znajduje się na dole prawego panelu bocznego tuż pod sekcją tagów.

Klikamy na Ustaw ikonę wpisu i ściągamy żądany plik graficzny do biblioteki mediów na serwerze.
Po zakończeniu uploadu powinno ukazać nam się okno z własnościami obrazka. Możemy tu zmodyfikować większość wartości dotyczących pliku.
Po zapisaniu zmian, przechodzimy do zakładki “Biblioteka mediów”, wyszukujemy obrazek i klikamy na Pokaż (odnośnik po prawej stronie od miniaturki obrazka). Następnie przewijamy zawartość okna aż do mementu gdy zobaczymy odnośnik Użyj jako ikony wpisu, na który klikamy. Miniaturka dla wpisu właśnie została ustawiona. Czas na wyświetlenie jej we wpisie.

Modyfikacje plików motywu

Aby miniaturka mogła zostać poprawnie wyświetlona należy minimlanie zmodyfikować pętlę odpowiedzialną za wyświetlanie wpisów. Załóżmy dla potrzeb tego artykułu, że ów pętla znajduje się w pliku index.php. Przed funkcją motywu wyświetlającą wypis lub zawartość wpisu wstawiamy kod jak poniżej.


if (has_post_thumbnail()) {
  the_post_thumbnail();
}

Powyższy kod wyświetli uprzednio przygotowaną miniaturkę. Wstawiony obrazek będzie miał szerokość 100px i proporcjonalną do niej wysokość.

Załóżmy teraz, że wpis nie ma ustawionej miniaturki, mimo to chcemy wyświetlić jakąś inny domyślną w tym samym miejscu. Możemy tego dokonać modyfikując pwyższy kod:


if (has_post_thumbnail()) {
  the_post_thumbnail();
}else{
  echo '<img src="'.get_bloginfo("template_url").'/images/default-thumbnail.png" >';
}

Jak wspomnaiłem wyżej, miniaturki zostały ustawione także dla pełnego wpisu. Jeżeli więc pętlę istneje w pliku single.php, należy ją zmodyfikować jak poniżej:


if (has_post_thumbnail("single-post-thumbnail")) {
  the_post_thumbnail();
}else{
  echo '<img src="'.get_bloginfo("template_url").'/images/default-thumbnail.png" >';
}

Powyższy kod, kiedy dodany w pętli pliku single.php wyświetli miniaturkę o szerokości 300px i proporcjonalnej wysokości.

Wady

Miniaturki jakkolwiek przydatne, powoduje dość znaczne spowolnienie ładowania strony co wynika z konieczności wykonania dodatkowych zapytań do bazy danych. Ich ilość może być istotna gdy na stronie wyświetlnamy na przykład 10 wpisów jednocześnie.

Należy wziąć również pod uwagę, że ściąganie dodatkowych obrazków w postaci miniaturek powoduje dodatkowe spowolnienie ładowania się strony w przeglądarce.

Więcej informacji na temat funkcji miniaturek można znaleźć na stronach kodeksu Wordpresa ( the_post_thumbnail, has_post_thumbnail, add_theme_support.


Komentarze ( 5 )


Wreszcie znalazłem działający sposób na dodawanie miniaturek. Dzięki Sylwek :) Miniatury się wyświetlają, ale chciałbym te miniatury "oblać" tekstem tak, aby również po prawej stronie miniatury znajdował się tekst, niestety nie wiem w jakim pliku to zrobić i jakiej funkcji użyć. Podaję link do tej strony [url=http://sekretylasu.pl/category/naturalne-sposoby-leczenia/]STRONA[url]. Jesteś w stanie mi pomóc? Byłbym bardzo wdzięczny :)


Dodaj float:right w arkuszu styli a pod tekstem jakiś tag z clear:right ... i to tyle.


Zamieniłem clear: both na clear:right w style.css, ale w którym miejscu mam dodać float:right aby odnosiło się ono do miniaturek? Nie chciałem Ci zawracać głowy, ale już parę godzin nad tym siedzę i nie wiem co robić.


Dodaj sobie klasę lub atrybut id do zdjęcia lub contenera, w którym ono się znajduje. Dla ów klasy lub id dodaj float:right. Zdjęcie powinno popłynąć sobie na prawą stronę.


Udało się :) Wielkie dzięki :)


Twój komentarz





Niektóre tagi XHTML są dozwolone
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>