WordPress: jak zmodyfikować atrybuty ikony wpisu?

Za pomocą funkcji 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 );'
    )
);

Liczba komentarzy: 2

Aga - Gravatar

27 marca 2012 o godzinie 20:24 Aga skomentował:

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).

Marcin - Gravatar

27 marca 2012 o godzinie 20:43 Marcin skomentował:

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

Dodaj komentarz

Należy wpełnić pola oznaczone znakiem gwiazdki "*". Proszę zapoznać się z zasadami komentowania.