,它返回的是 http URL 而不是 https URL,导致我的网站上出现混合内容。该网站的其他区域正在返回-6ren">
gpt4 book ai didi

Wordpress/ACF 图片字段 HTTPS/SSL

转载 作者:太空宇宙 更新时间:2023-11-03 13:32:13 25 4
gpt4 key购买 nike

当使用“图像”类型的自定义字段时,返回值为“图像 URL”,然后在我的模板中使用 <img src="<?php the_field('mycustomimage'); ?>"> ,它返回的是 http URL 而不是 https URL,导致我的网站上出现混合内容。该网站的其他区域正在返回一个 https URL,就像我使用 wp_get_attachment_image_src(); 时一样例如。

如何让它返回 https URL?

最佳答案

有多种Insecure Content Fixing那里的插件,以及Simple SSL Setup运行良好的插件。 Codex 中还有一些文档这可能会有所帮助。

如果这些都不能解决您的问题,您可以简单地对返回值进行字符串替换。请注意,为了便于使用,您可能希望使用返回的 get_ 函数而不是回显 the_ 函数:

<img src="<?= str_replace( 'http://', 'https://', get_field( 'mycustomimage' ) ); ?>">

另外请确保您的站点在常规设置中设置为 https://(如果尚未设置)

编辑:

关于您的评论:上传图片时管理员是否使用 https:// 进行了保护?此外,不安全的内容修复程序和简单的 ssl 设置插件实际上应该只需要激活(或网络激活)并且基本上可以使用。

如果这些不起作用,您已经修改了所有数据库记录,并且所有应该都可以正常工作,您可以随时进行运行时查找和替换,虽然它有点老套,但实际上我已经之前出于类似目的使用了与此类似的代码,尽管所有内容都说它们应该更新为新协议(protocol),但有些东西只是“卡在”旧协议(protocol)上。

add_action( 'template_redirect', function() use($startTime){
ob_start( function( $buffer ){
if( is_ssl() ) $buffer = str_ireplace( 'src="http://', 'src="https://', $buffer );

return $buffer;
});
});

请注意,这将要求任何具有 src 属性的内容都具有适当的 SSL 资源,包括外部资源(iframe、脚本等)——否则您需要将其复杂化使用 preg_replace_callback() 和一些正则表达式来仅抓取 img 标签。

关于Wordpress/ACF 图片字段 HTTPS/SSL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50915614/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com