the_post_thumbnail com o plugin lazyload JQ

4

Eu preciso modificar a função the_post_thumbnail para executar o "Lazyload", Eu acho que há duas soluções:

1- modifique os args para algo parecido com isto

the_post_thumbnail('product', array('data-original'=>$src, 'src'=>'grey.gif'));

(((NÃO TRABALHA!)))

2- obtenha apenas o URL da imagem da função ... Eu tentei muitos trechos e nada funcionou para mim, como este!

$thumbnail_src = wp_get_attachment_image_src( get_post_thumbnail_id( $post->ID ), "size" );

alguma ideia ??

obrigado

    
por johnmido 12.06.2012 / 17:11

3 respostas

4

Se você quiser aplicar o lazyload a cada imagem de anexo, basta adicionar sua referência ao filtro wp_get_attachment_image_attributes :

add_filter( 'wp_get_attachment_image_attributes', 'wpse8170_add_lazyload_to_attachment_image', 10, 2 );
function wpse8170_add_lazyload_to_attachment_image( $attr, $attachment ) {
    $attr['data-original'] = $attr['src'];
    $attr['src'] = 'grey.gif';
    return $attr;
}

Ou se você puder usar a segunda abordagem:

$thumbnail_src = wp_get_attachment_image_src( get_post_thumbnail_id( $post->ID ), "size" );
// add more attributes if you need
printf( '<img src="grey.gif" data-original="%s"/>', esc_url( $thumbnail_src[0] ) ); 
    
por Eugene Manuilov 12.06.2012 / 17:28
0

Se você não quiser usar um gancho, no loop você pode fazer assim:

$loop = new WP_Query( array( 'posts_per_page' => -1 ) );
while ( $loop->have_posts() ) : $loop->the_post(); 

    global $post;
    if ( $image_id = get_post_thumbnail_id( $post->ID ) ){

        if ($src = wp_get_attachment_image_src( $image_id, 'full' )){

                $item.= '<img class="lazy" data-original="' . $src[0] . '"/>';
        }

    }

endwhile; wp_reset_query();
    
por RafaSashi 26.11.2016 / 12:19
0

Adicione ao functions.php :

do seu modelo
function lazyload_image( $html ) {
    $html = str_replace( 'src=', 'data-src=', $html );
    return $html;
}

...

add_filter( 'post_thumbnail_html', 'lazyload_image');

Pessoalmente, estou usando meu próprio plugin lazyload, desvenda .

    
por vsync 11.04.2018 / 22:32