apply_filters( 'post_thumbnail_html', string $html, int $post_id, int $post_thumbnail_id, string|int[] $size, string|array $attr )

Filters the post thumbnail HTML.


$html string
The post thumbnail HTML.
$post_id int
The post ID.
$post_thumbnail_id int
The post thumbnail ID, or 0 if there isn't one.
$size string|int[]
Requested image size. Can be any registered image size name, or an array of width and height values in pixels (in that order).
$attr string|array
Query string or array of attributes.

Top ↑


File: wp-includes/post-thumbnail-template.php. View all references

return apply_filters( 'post_thumbnail_html', $html, $post->ID, $post_thumbnail_id, $size, $attr );

Top ↑


Version Description
2.9.0 Introduced.

Top ↑

User Contributed Notes

  1. Skip to note 1 content
    Contributed by Curtiss Grymala

    As of WP 5.9 (as far as I can tell), the $attr parameter indicates it accepts a string or array. If you are using parameter-typing in your methods/functions, and you previously indicated that your function should expect a string, you will see fatal errors due to this (as arrays are also sent, now). The change appears to have occurred here.

  2. Skip to note 2 content
    Contributed by João Carvalho

    Add title attribute to post thumbnail:

    function wpdocs_addTitleToThumbnail( $html ) {
        $id = get_post_thumbnail_id();
        $alt_text = get_post_meta( $id, '_wp_attachment_image_alt', true );
        $html = str_replace( 'alt=', 'title="' . esc_attr( $alt_text ) . '" alt=', $html );
        return $html;
    add_filter( 'post_thumbnail_html', 'wpdocs_addTitleToThumbnail' );

You must log in before being able to contribute a note or feedback.