在PHP中更改_POST_THMBILITH的PUT

时间:2013-07-26 作者:jkw4703

我是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\\u filter函数。

我的下一个猜测是this. 能不能请一位在PHP和wordpress方面更有经验的人帮我一下?也许第一个是正确的选择,但我只是做错了。

1 个回复
最合适的回答,由SO网友:s_ha_dum 整理而成

过滤器不是PHP。

第二,您已致电thumbnail_filter 作用你把它钩住了post_thumbnail_html 因此,每当应用该过滤器的函数运行时,如the_post_thumbnail, 您的函数运行。如果你想一想,你会发现这里有一个循环。过滤器调用应用过滤器的函数(两次)。

第三the_post_thumbnail 将回显图像。那不是你想要的。我有点困惑这两行是什么(不包括评论)。。。

the_post_thumbnail($default_attr);
// you can alter the resulted HTML here
$html = the_post_thumbnail($default_attr);
。。。都是注定要做的。

我想你对过滤器的工作原理有些困惑。

particular filter passes several parameters:

return apply_filters( \'post_thumbnail_html\', $html, $post_id, $post_thumbnail_id, $size, $attr );
对于你正在做的事情,你只需要第一个。您需要更改该输入并返回它,如下所示:

function thumbnail_filter($html) {
  $pattern = \'|src="([^"]*)"|\';
  $html = preg_replace($pattern,\'src="/absolute/loading/gif/path.gif" source="$1"\',$html);
  return $html;
}
add_filter(\'post_thumbnail_html\', \'thumbnail_filter\');
请确保使用以下函数加载gif时使用绝对URLget_stylesheet_directory_uri, 或者任何适合你的情况。不要使用相对URL。这会引起麻烦。

结束

相关推荐

WordPress显示错误的php时间和日期

让我惊讶的是,今天我看到wordpress把时间安排得很糟糕在场景中,我有我的国家、法国和巴黎的时光今天我尝试创建一个函数php date函数来显示日期<?php echo date(\"dmY\"); ?> 让我惊讶的是,我告诉你,看到wordpress改变了我的php时间,把第19天改成了小时,实际上没有显示实时时间如果在其他站点插入相同的代码-不使用wordpress-并且日期显示在右侧,则为第20天wordpress如何更改php的本机功能,并在运行php的本