已解决:
将这些代码添加到函数中。您的子网站主题的php文件,紧跟在首字母“之后,并在使用之前阅读:
https://codex.wordpress.org/Changing_The_Site_URL#Edit_functions.phpif ( ! is_admin() ) {
$xsiteurl = get_option( \'home\' );
$find = array( \'http://\', \'https://\' );
if ( $find != \'http://\' ) {
$replace = \'\';
$pureaddress = str_replace( $find, $replace, $xsiteurl );
$ssladdress = \'https://\' . $pureaddress . \'\';
if ( $xsiteurl != $ssladdress ) {
update_option( \'siteurl\', \'\' . $ssladdress . \'\' );
update_option( \'home\', \'\' . $ssladdress . \'\' );
}
}
}
注:最初最好的是
get_option( \'siteurl\' )
, 它决定了“$xsiteurl”,但这段代码已被弃用,wordpress建议使用它来代替
site_url()
, 因为“等效功能”,但这是错误的:如果在多站点上使用get\\u site\\u url(),那么在上使用https会怎么样。htaccess,wp配置。php和在网络上的home,如WP\\u SITEURL和WP\\u home,输出
get_site_url()
将是
https://subdomain.domain.com 即使此子网站真实(so/和默认)网站url和主页选项为:
http://subdomain.domain.com. 因此:
get_site_url()
几乎不等于
get_option( \'siteurl\' )
...
虽然你的。htaccess将您的子网站(在自己的siteurl和home选项上有http)重定向到https,这将正常工作,但会在您的网站上导致内容混合问题,因此,如果您的网络主页有指向子网站的链接,您的SSL将无法正常工作,您需要使用更好的搜索替换插件更正数据库中的此错误链接。。。
当我使用get_option( \'home\' );
这使得home url选项的实际值不太可能get_site_url()
.
最后if ( $xsiteurl != $ssladdress )
确保代码不会重复运行(请参阅wordpress codex链接),因此这是安全的。。。
最后一个“美中不足”,这段代码只有在有人打开站点(甚至是wp管理员,甚至是前端)时才会在站点上运行。。。因此,新的子网站默认的siteurl和home选项将保留为http,而此代码仅在代码用完后重写此默认值。。。(如果您创建一个新的子网站,这可能会导致混合内容问题,如果没有这个问题,请先打开此网站的后端或前端,然后从其他子网站广播此网站上的帖子…)
附言:我只是一名网页设计师,刚刚学习php,如果你知道这段代码有什么不好的地方,请写下来。