在Wordpress中实现Lazy Load的问题

时间:2014-01-10 22:22:14

标签: php jquery wordpress lazy-loading

我正在尝试为客户端的网站实现一个延迟加载wordpress插件,该插件为“BJ Lazy Load”,客户端使用的主题是“Viewfinder”。

主页有2400个120x120缩略图图像,这些图像都是帖子,缩略图图像是帖子的附件,全尺寸图像(点击加载)是帖子特色图像(请参阅取景器页面上的图像,例如。)

我安装了插件,但默认情况下这只是延迟加载帖子内容中的图片,而这些图片不是。在“其他注释”中,开发人员说通过过滤器传递以下内容以在所有图像上使用延迟加载:

    <?php
$img_html = '<img src="myimage.jpg" alt="">';
$img_html = apply_filters( 'bj_lazy_load_html', $img_html );
echo $img_html;
?>

我在支持论坛上问过另一个用户遇到问题,我最终使用了他的代码,将其粘贴到functions.php文件中:

$args = array(
'post_type' => 'attachment',
'post_status' => null,
'post_parent' => $fr_ID,
'posts_per_page' => -1,
'orderby' => 'menu_order',
'order' => 'ASC'
);

$attachments = get_posts( $args );

if( $attachments ) {

$thumb_images = array();

foreach( $attachments as $key => $attachment ) { 

    $thumb_image = wp_get_attachment_image_src( $attachment -> ID, 'thumbnail' );

    $thumb_images[] = $thumb_image[0];
}
natsort( $thumb_images );
}

// Apply lazy load filter to images
$img_lazy_load = '<img src="'.$thumb_images[0].'" alt="'.esc_attr( get_the_title() ).'" />';
$img_lazy_load = apply_filters( 'bj_lazy_load_html', $img_lazy_load );
echo $img_lazy_load;

无论我尝试什么,我似乎都无法让这种懒惰的工作变得有效。有没有人可以尝试任何建议,其他方法或替代插件?

由于

2 个答案:

答案 0 :(得分:0)

我首先要在一个干净的WordPress安装上安装和配置插件。如果你在遵循作者的指示后无法让它在那里运行,你可能会从联系插件作者并告知他们,因为这表明插件存在错误,这可能会受益最多。

答案 1 :(得分:0)

在设置中你可以选择它在标题中工作而不是wp_footer,这对我有用。您还可以尝试一个名为Lazy Load的插件(没有Bj)。