如何在WordPress模板中对图像进行Base64编码

时间:2019-06-30 作者:Rafael Guimarães

我想在base64中对图像进行编码,以便更好地解决SEO建议的问题,我正在修复审计中的一些问题,它说使用新的图像格式,然后将图像加载为默认值,如<img src=\'path/to/image.jpg\'/> 所以在我的研究中,我发现base64编码的图像在审计中解决了这个警告。

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

在您的文件中functions.php 在模板中放置此函数

/**
* @param $path
* @return string
* @author https://github.com/ozzpy
*/
function imageEncode($path)
{
$path  = __DIR__."/".$path;
$image = file_get_contents($path);
$finfo = new finfo(FILEINFO_MIME_TYPE);
$type  = $finfo->buffer($image);
return "data:".$type.";charset=utf-8;base64,".base64_encode($image);
}

/**
 * @param $path
 * @return string
 * @author https://github.com/ozzpy
 */
function imageEncodePath($path)
{
$image = file_get_contents($path);
$finfo = new finfo(FILEINFO_MIME_TYPE);
$type  = $finfo->buffer($image);
return "data:".$type.";charset=utf-8;base64,".base64_encode($image);
}


/**
 * @param $path
 * @return string
 * @author https://github.com/ozzpy
 */
function imageEncodeURL($path)
{
$image = file_get_contents($path);
$finfo = new finfo(FILEINFO_MIME_TYPE);
$type  = $finfo->buffer($image);
return "data:".$type.";charset=utf-8;base64,".base64_encode($image);
}
在模板中的html文件中,按如下方式使用:

模板级别:<img src="<?php echo imageEncode("img/logo.jpeg");?>"/>

另一路径级别:<img src="<?php echo imageEncodePath(__DIR__."/images/slider.png");?>"/>

外部url级别:<img src="<?php echo imageEncodeURL("https://somedomain.com/img/image.jpeg");?>"/>

相关推荐

Yoast SEO过滤器钩子wpseo_sitemap_urlimages何时启动?

我正在尝试将一个简单的函数附加到Yoast SEO过滤器挂钩wpseo_sitemap_urlimages 并让函数运行,但我不能这样做。我的代码是:function tp_filter_wpseo_sitemap_urlimages($images, $post_id) { error_log(\"test message\"); return $images; } add_filter(\'wpseo_sitemap_urlimages\', \'tp_