the_post_thumbnail con lazyload JQ plugin

4

Necesito modificar la función_post_thumbnail para ejecutar "Lazyload" en ella, Creo que hay dos soluciones:

1- modifica los argumentos para que sean como estos

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

(((NO TRABAJA!)))

2- obtener solo la url de la imagen de la función ... probé muchos fragmentos y nada funcionó para mí, como este!

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

alguna idea ??

gracias

    
pregunta johnmido 12.06.2012 - 17:11

3 respuestas

4

Si desea aplicar lazyload a cada imagen adjunta, solo puede agregar su hoot a wp_get_attachment_image_attributes filter:

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;
}

O si puedes usar un segundo enfoque:

$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] ) ); 
    
respondido por el Eugene Manuilov 12.06.2012 - 17:28
0

Si no quieres usar un gancho, en el bucle puedes hacer esto:

$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();
    
respondido por el RafaSashi 26.11.2016 - 12:19
0

Agregar a la plantilla functions.php :

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

...

add_filter( 'post_thumbnail_html', 'lazyload_image');

Personalmente estoy usando mi propio complemento de descarga lenta, unveil .

    
respondido por el vsync 11.04.2018 - 22:32

Lea otras preguntas en las etiquetas