Kategorie
filtr dnia WordPress

Filtr dnia: post_thumbnail_html

Filtr działa na koniec w funkcjach: the_post_thumbnail
get_the_post_thumbnail
pozwalając na modyfikację kodu html ikony wpisu.

Króciutki przykład działania, pozwalający usunąć z treści atrybuty height oraz width

add_filter( 'post_thumbnail_html', iworks_remove_width_and_height, 10, 5 );
function iworks_remove_width_and_height( $html, $post_id, $post_thumbnail_id, $size, $attr )
{
    $html = preg_replace( '/ (width|height)="[^"]+"/', '', $html );
    return $html;
}

Podany kod wystarczy dodać do pliku functions.php używanego motywu.

Kategorie
Snippet

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 );'
    )
);

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