3

我是 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为具有具有实际源路径的“源”属性,并且初始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 函数也没有显示任何图像。

我接下来要做什么的猜测是这个。有一点 PHP 和 wordpress 经验的人可以帮助我吗?也许第一个是正确的方法,但我只是做错了。

4

1 回答 1

1

当调用 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 文件中。我想这会奏效。

于 2013-07-29T11:23:17.880 回答