You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

咨询:如何让WordPress的get_option('siteurl')输出HTTPS前缀?

解决WordPress评论表单HTTPS URL问题

以下是几种可行的修改方案,按需选择:

方案1:直接修改主题表单代码(最直接)

把原代码中的get_option('siteurl')替换为site_url()并指定HTTPS协议,强制生成带HTTPS前缀的地址:

<form action="<?php echo site_url('/wp-comments-post.php', 'https'); ?>" method="post" id="commentform">

site_url()是WordPress官方推荐的URL生成函数,第二个参数传入'https'可以忽略后台设置,直接输出HTTPS地址。

方案2:通过过滤函数修改URL输出(无需改动主题模板)

如果不想修改主题文件,可以在当前主题的functions.php中添加以下代码,自动将get_option('siteurl')返回的HTTP地址替换为HTTPS:

add_filter('option_siteurl', function($url) {
    return str_replace('http://', 'https://', $url);
});

该函数会全局拦截siteurl选项的返回值,替换协议前缀,适用于多个地方需要修改URL协议的场景。

方案3:在wp-config.php中配置HTTPS站点地址(根治方案)

直接在wp-config.php中定义站点的HTTPS地址,这是WordPress官方推荐的配置方式,能确保所有系统生成的URL都使用HTTPS:

define('WP_HOME', 'https://你的实际域名');
define('WP_SITEURL', 'https://你的实际域名');

替换你的实际域名为你网站的真实域名,配置后无需修改主题或添加过滤函数,一劳永逸解决混合内容问题。

问题原因说明

出现浏览器安全错误是因为get_option('siteurl')返回的是你WordPress后台「设置-常规」中的站点地址,如果该地址仍为HTTP,即使Nginx做了HTTP转HTTPS的跳转,表单提交的目标地址还是HTTP,会触发混合内容安全限制。

内容的提问来源于stack exchange,提问作者Alexey Starinsky

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.22 15:09:58