我是PHP的新手。我已经搞砸了wordpress,但实际上并没有使用它背后的代码。我正在努力加快wordpress网站的加载时间,但我遇到了一些麻烦。 PHP使用the_post_thumbnail
加载某些帖子图片的HTML代码。我有这个代码来延迟加载图像,以便首先加载页面,然后加载图像:
jQuery(window).load(function() {
jQuery('img[source]').prepend(function(){
var source = jQuery(this).attr('source');
jQuery(this).attr('src', source);
});
});
这在我使用coldfusion和普通html编写的另一个网站上非常有效。所以我要做的是将the_post_thumbnail
的输出更改为具有实际源路径的'source'属性,并且初始src
值将具有默认的加载gif。
我的第一个想法是构建另一个函数,或者我猜想,当PHP调用它时,添加一个像这样的过滤器:
add_filter('post_thumbnail_html', 'thumbnail_filter');
function thumbail_filter() {
$default_attr = array(
'src' => $src,
'class' => "attachment-$size",
'alt' => trim(strip_tags( $wp_postmeta->_wp_attachment_image_alt )),
);
the_post_thumbnail($default_attr);
// you can alter the resulted HTML here
$html = the_post_thumbnail($default_attr);
return $html;
}
这实际上没有打破页面,即使我没有调用thumbnail_filter函数也没有显示任何图像。
关于该怎么做的我的下一个猜测是this。那些在PHP和wordpress方面有一点经验的人可以帮助我吗?也许第一个是正确的方法,但我只是做错了。
答案 0 :(得分:0)
当调用the_post_thumbnail()函数时,将自动调用thumbnail_filter()函数。并且要向img标记添加源属性,您必须使用此过滤器替换过滤器
add_filter( 'post_thumbnail_html', 'my_post_image_html', 10, 3 );
function my_post_image_html( $html, $post_id, $post_image_id ) {
$html = '<img src="" source="'.get_permalink( $post_id ).'"/>';
return $html;
}
将此代码粘贴到functions.php文件中。我想这会奏效。