WordPress: jak zmodyfikować atrybuty ikony wpisu?

Za pomocą funkcji get_the_post_thumbnailfunkcja get_the_post_thumbnail() można w szablonie wstawić miniaturki wpisu, zwane „ikoną wpisu”. Czasem przydałoby się zmodyfikować to co dostajemy na wyjściu i poniżej zaprezentowane są trzy różne sposoby wykorzystania filtra post_thumbnail_html, dzięki któremu można usunąć, zmienić bądź dodać atrybuty obrazka.

Żeby usunąć atrybuty „width” oraz „height” z tego co WordPress produkuje jako ikonę wpisu użyj takiego kodu:

add_filter(
    'post_thumbnail_html',
    create_function(
        '$html',
        'return preg_replace( \'/ (width|height)="\d+"/\', \'\', $html );'
    )
);

Można oczywiście wyczyścić inne parametry, poniżej ich lista, choć czyszczenie parametru src, byłoby „lekko” bezsensu:

  • alt
  • class
  • height
  • src
  • title
  • width

Wykorzystując ten kod może tez zmienić zawartość jakiegoś elementu, np. ustawić na stałe klasę „foo-bar”:

add_filter(
    'post_thumbnail_html',
    create_function(
        '$html',
        'return preg_replace( \'/ class="[^"]+"/\', \'class="foo-bar"\', $html );'
    )
);

Czy też dodać sobie jakiś parametr:

add_filter(
    'post_thumbnail_html',
    create_function(
        '$html',
        'return preg_replace( \'/<img/\', \'<img foo="bar"\', $html );'
    )
);

Jak użyć podany kod?

Masz 3 rozwiązania:

  1. wrzuć załączony plik do folderu wp-content/plugins, a potem włącz wtyczkę
  2. wrzuć załączony plik do folderu wp-content/mu-plugins
  3. dołącz kod do pliku functions.php aktualnie używanego motywu

Poprzedni

Nie dla ACTA

Następne

WordPress: blokowanie w robots.txt kilku rzeczy

4 komentarze

  1. Aga

    Ciekawy wpis, fajne „gotowce” do wykorzystania. Ja często korzystam z add_image_size, żeby zmienić domyślny rozmiar ładowanych obrazków (tj. ikona wpisów).

  2. @Aga: to jest krok dalej, bez „add_image_size” przykłady nie mają sensu :D

  3. Hej,

    podobno nie ma złych pytań:) ale czy moglibyście mi powiedzieć jak się dostać lub gdzie szukać tego post_thumbnail_html ?

    Chciałbym zminić obrazek na wyjściu przy wklejaniu linka na facebooka.
    Niestety z powyższego na moim poziomie, nie potrafia skorzystać.
    Liczę na wyrozumienie i wsparcie.
    Pozdrawiam

    Jan Paweł Tomaszewski

Oparte na WordPress & Theme by Anders Norén