This seems to be an easy one but its giving me quite a hard time. get_the_post_thumbnail() suppose to take attribute as an array. Well, everything working right but when i pass style attr its doesn't work.

$attr = array(
                                'title' => get_the_title(),
                                'alt' => get_the_title(),
                                'style' => 'float:left'

$thumb = get_the_post_thumbnail($post->ID, 'large-thumb', $attr);

The title and the alt attribute is set up nicely though but style attribute is missing in images.

FYI: I am showing the thumbnail in rss feed.


get_the_post_thumbnail attribute array doesn't know STYLE , the fields that are available for you to use are:

  • src
  • class
  • alt
  • title

so just use the class and define you class to it:

$attr = array(
                                'title' => get_the_title(),
                                'alt' => get_the_title(),
                                'class' => 'rss_thumb'
$thumb = get_the_post_thumbnail($post->ID, 'large-thumb', $attr);

and then define the style in the class:



My bad rss feed can really be styled like HTML since its not HTML. so to over come this problem you need to have your image inside the content tag and give it an align="left" which should work in most rss readers.

so what you really want is to add a content_filter:


function add_rss_thumb($content){
    if (!is_feed()){
        return $content;

    //now that we know is a feed we add the image to the content:
    global $post;
    if(has_post_thumbnail()) {
        $post_thumbnail_id = get_post_thumbnail_id( $post->ID );
        $thumbnail_attributes = wp_get_attachment_image_src( $post_thumbnail_id );
            $thumbnail_attributes is an array containing: 
            [0] => url
            [1] => width
            [2] => height 

        return '<img src="'.thumbnail_attributes[0].'" title="'.the_title_attribute('','',0).'" alt="'.the_title_attribute('','',0).'" align="left">'.$content;
    return $content;
| improve this answer | |
  • It seems. Wordpress feed does not echo any style attribute directly in html element. – Sisir Jun 27 '11 at 11:17
  • Note also, for the title attribute, you should be using get_the_title_attribute(). – Chip Bennett Jun 27 '11 at 11:23
  • How do i add styles in my rss feed? – Sisir Jun 27 '11 at 11:30
  • i updated my answer – Bainternet Jun 27 '11 at 12:24

I stumbled on a good and more global solution for this on Isabel Castillo's blog, by using wp_get_attachment_image_attributes filter:

function isa_add_img_title( $attr, $attachment = null ) {
    $attr['title'] = trim( strip_tags( $attachment->post_title ) );
    return $attr;
add_filter( 'wp_get_attachment_image_attributes','isa_add_img_title', 10, 2 );

This way, you could add other attributes as well (e.g. data-caption)

Original code on http://isabelcastillo.com/add-title-attribute-wordpress-image-thumbnail

| improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.