如何在Wordpress网站上更改我的functions.filter.php以修复断开的链接[site_url_secure]

时间:2019-02-27 06:49:37

标签: php wordpress

我已经在一个非常老的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');

1 个答案:

答案 0 :(得分:0)

已解决! 只需更改:

preg_match("/\[site_url(_url_secure)?\]/" 

至:

preg_match("/\[site_url(_secure)?\]/"

在您的代码中:)