Wordpress / ACF图像字段HTTPS / SSL

时间:2018-06-18 18:39:55

标签: wordpress image ssl https advanced-custom-fields

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

如何让它返回https网址?

1 个答案:

答案 0 :(得分:0)

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

如果这些都没有解决您的问题,您只需对返回的值执行字符串替换即可。请注意,您可能希望使用返回的get_函数而不是回显the_函数,以便于使用:

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

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

修改

关于您的评论:图片上传后管理员是否以https://保护了?此外,不安全的内容修复程序和简单的ssl安装插件应该有效地只需要激活(或网络激活),并且基本上是好的。

如果那些不起作用,您已经修改了所有数据库记录,并且所有 都应该正常工作,那么您总是可以进行运行时查找和替换,而有点hacky,我实际上使用类似的代码用于类似的目的之前,有些东西只是&#34;卡住&#34;尽管一切都说他们应该更新到一个新的协议,旧的协议。

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标签。