php - 在 PHP 中更改 the_post_thumbnail 的输出

标签 php wordpress

我是 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 方面有更多经验的人可以帮助我吗?也许第一个是正确的方法,但我只是做错了。

最佳答案

thumbnail_filter() 函数将在调用 the_post_thumbnail() 函数时自动调用。并向 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 文件中。我想这会奏效。

关于php - 在 PHP 中更改 the_post_thumbnail 的输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17887802/

相关文章:

javascript - 仅在第二页加载时动画定位

php - 如何让 HTML/CSS 在电子邮件中显示?

php - 插入数据库时​​的文本区域间距

php - 这是如何工作的 : chr(($number >>6 )+192). chr(($number & 63)+128);

php - 模块翻译不是翻译

PHP 日期未以正确的格式插入

php - 从自己的 CMS 中的 wp_postmeta 提取数据

php - 自定义 wordpress 主题

php - 无法使用 WordPress wp_posts 表添加外键

WordPress 最新帖子菜单项