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