【问题标题】:IE8 Wordpress Thumbnails > add px to $hwstringIE8 Wordpress 缩略图 > 将 px 添加到 $hwstring
【发布时间】:2026-01-01 08:10:02
【问题描述】:

WordPress 使用以下属性呈现缩略图:

<img width="100" height="200" ... 

IE7\8 要求是这样的:

<img width="100px" height="200px" ... 

(确切的问题在这里:Wordpress featured images not showing up in IE8

我深入研究了核心,找到了渲染高度\宽度的代码: http://core.trac.wordpress.org/browser/trunk/wp-includes/media.php#L223

我的问题: 你能帮我用一个自定义函数将 px 部分添加到 $hwstring 中吗(函数在这里:http://core.trac.wordpress.org/browser/trunk/wp-includes/media.php#L98

提前感谢您的每一个提示。

【问题讨论】:

  • 为什么不使用过滤器“get_image_tag”并调整其中的尺寸? $html = apply_filters('get_image_tag', $html, $id, $alt, $title, $align, $size);
  • 感谢您的输入。我目前正在尝试使用试错法来做到这一点:-/ pastebin.com/21SBphXf

标签: wordpress internet-explorer-8


【解决方案1】:

试试这个;

function custom_dimensions($html, $id, $alt, $title, $align, $size){
    $html = preg_replace('%(width|height)(="[0-9]{1,4})(")%', '$1$2px$3', $html);
    return $html;
}

add_filter('get_image_tag', 'custom_dimensions',1, 6);

我只是在最后快速测试了它。

【讨论】:

  • preg_replace 完美运行。谢谢sn-p。但是该功能没有启动。我尝试了 apply_filters,具有不同的优先级。没有成功。没有任何钩子我们不能直接进入“函数image_hwstring”吧?
  • 在将图像插入内容编辑器时,过滤器似乎对我有用。它不会对任何现有内容进行追溯。
  • 看起来 image_hwstring 没有带任何过滤器。所以我猜你只剩下上面的过滤器,移动到一个 jquery 方法或使用 image_to_editor 过滤器来拦截任何图像插入到编辑器中。
  • 哦,是的,当我重新添加一些图像时,它会完美运行。为什么我没试过?!?正如您所说 - 它不适用于现有内容(我总是在新过滤器激活之前刷新添加的图像。)非常感谢您的帮助和解决方案。
  • 没问题。如果您需要对现有内容进行此更改,jQuery 将是您的最佳选择。