无法让Wordpress的apply_filters('site_url')返回https方案

时间:2015-07-24 17:50:51

标签: php wordpress .htaccess ssl

我正在将Wordpress网站迁移到完全https://,但我在登录页面遇到问题。

登录页面本身正在加载https://方案,但表单操作指向页面的不安全的http://版本,这导致它只需重定向回https://版本(我假设是因为我的.htaccess正在将http流量重定向到其https版本。)

在wp-login.php中,以下代码设置表单操作:

<form name="loginform" id="loginform" action="<?php echo esc_url( site_url( 'wp-login.php', 'login_post' ) ); ?>" method="post">

看起来,有问题的功能是site_url()功能,因为它正在返回网站的http://版本。

我查看了函数本身,函数调用按此顺序进行:

site_url -> get_site_url -> set_url_scheme -> apply_filter -> *return*

通过这个调用堆栈,我注意到,只有当方案被设置回http://时才会调用apply_filter函数。

我已明确设置site_url( 'wp-login.php', 'https'),即使是返回http://方案。

我希望有人知道这里发生了什么,因为我不知道为什么Wordpress不允许我使用https://。它似乎几乎在其他地方工作,因为我的css和js的所有相关链接都加载了https版本。

注意:我已设置define('FORCE_SSL_ADMIN', true);,我的wordpress site_urlhome_url已设置为选项表中的https://版本。< / p>

1 个答案:

答案 0 :(得分:0)

此问题的根源是我们的供应商留下的mu-plugin,但应该已被删除。无论如何,这里的教训是始终检查您的插件。