我已经在一个非常老的WP网站上安装了SSL证书。插件和WP本身一直在自动更新,但是主题已过期,并且支持已在三年前停止。这是主题https://wordpress.org/themes/white/。该网站仍位于1.0.1(2014年9月)上。自那时以来,已经进行了五次修订,最后一次修订于2017年2月。https://themes.trac.wordpress.org/log/white?limit=100&mode=stop_on_copy&format=rss。我已经成功安装了证书并更新了指向https的链接,这样就可以了。不幸的是,现在两个图像链接已断开-其中一个是徽标!我已经花了几个小时在网络上研究这个问题,看来这很可能与php有关(我对此一无所知)。当我检查破损的徽标时,我看到了...。
<img alt="Featured Logo" src="[site_url_secure]/wp-content/uploads/****png">
几年前,有人说他们已通过以下方式解决了该问题
removing [site_url_secure] from admin>functions>functions.filter.php
但是我不知道该怎么做。有人可以告诉我吗?
function of_filter_save_media_upload($data) {
if(!is_array($data)) return $data;
foreach ($data as $key => $value) {
if (is_string($value)) {
$data[$key] = str_replace(
array(
site_url('', 'http'),
site_url('', 'https'),
),
array(
'[site_url]',
'[site_url_secure]',
),
$value
);
}
}
return $data;
}
add_filter('of_options_before_save', 'of_filter_save_media_upload');
function of_filter_load_media_upload($data) {
if(!is_array($data)) return $data;
foreach ($data as $key => $value) {
if (is_string($value) && preg_match("/\[site_url(_url_secure)?\]/", $value)) {
$data[$key] = str_replace(
array(
'[site_url]',
'[site_url_secure]',
),
array(
site_url('', 'http'),
site_url('', 'https'),
),
$value
);
}
}
return $data;
}
add_filter('of_options_after_load', 'of_filter_load_media_upload');
答案 0 :(得分:0)
已解决! 只需更改:
preg_match("/\[site_url(_url_secure)?\]/"
至:
preg_match("/\[site_url(_secure)?\]/"
在您的代码中:)