小墨の博客

梦想需要付诸行动,否则只能是梦

如何修改WordPress图片地址为相对路径

https://blog.csdn.net/lizhi125/article/details/16940617

WordPress图片地址在默认编辑下是使用额绝对路径,这样别人复制你文章到其他的网站上,图片也可以正常显示,但是如果我想更改博客的域名,或者路径,那么这些图片的地址全部失效,不能正常显示。下面是两种解决Wordpress模板图片使用相对路径的方法,希望可以帮到大家。

1.修改Wordpress主题根目录下的wp-config.php,这个文件只有在安装好Wordpress之后才会出现,在该文件中加入一下两行

define(‘WP_HOME’, ”);
define(‘WP_SITEURL’, ”);
 
保存,OK了!但是这种修改方式是只能用户网网站根目录,并且使用默认的80端口

如果你不是用网站的根目录,或者用非80端口,那就用第二种方法

2.打开wp-includes/post.php文件,修改函数wp_get_attachment_url(3.7.1在4276行)为如下代码

function wp_get_attachment_url($post_id = 0) {

    $file_dir = dirname(__FILE__);
    $server_root = $_SERVER[DOCUMENT_ROOT];
    $file_dir = substr($file_dir,strlen($server_root));
    $file_dir = substr($file_dir,0,-12);
    if ($file_dir != ”) {
        $file_dir=’/’.substr($file_dir,1);
    }

    $post_id = (int) $post_id;
    if (!$post =& get_post($post_id))
        return false;

    $url = ”;
    if ($file = get_post_meta($post->ID, ‘
        _wp_attached_file’, true)) {
        //Get attached file

        if (($uploads = wp_upload_dir()) && false === $uploads['error']) {
            //Get upload directory
            if (0 === strpos($file, $uploads['basedir'])) //Check that the upload base exists in the file location
                //$url = str_replace($uploads['basedir'], $uploads['baseurl'], $file); //replace file location with url location
            $url = $file_dir.”/wp-content/uploads/”.$file;
            elseif (false !== strpos($file, ‘
                wp-content/uploads’
            ))
                //$url = $uploads['baseurl'] . substr( $file, strpos($file, ‘wp-content/uploads’) + 18 );
            $url = $file_dir.”/wp-content/uploads/”.$file;
            else
                //$url = $uploads['baseurl'] . “/$file”; //Its a newly uploaded file, therefor $file is relative to the basedir.
            $url = $file_dir.”/wp-content/uploads/”.$file;
        }
    }

    if (empty($url)) //If any of the above options failed, Fallback on the GUID as used pre-2.7, not recomended to rely upon this.
        $url = get_the_guid($post->ID);

    if (‘
        attachment’ != $post->post_type || empty($url))
        return false;

    return apply_filters(‘
        wp_get_attachment_url’, $url, $post->ID);
}

保存,OK了

这样你以后写的文章日志里面的多媒体文件路径都是用相对路径了,更换域名空间之后图片地址不会失效!

张小弟之家

本文链接:
文章标题:

本站文章除注明转载/出处外,均为原创,若要转载请务必注明出处。转载后请将转载链接通过邮件告知我站,谢谢合作。本站邮箱:admin@only4.work

尊重他人劳动成果,共创和谐网络环境。点击版权声明查看本站相关条款。

    • 评论列表:
    •  2291200076
       发布于 2021-01-21 01:22:05  回复该评论
    • 博客园搬家文章,搬家前链接:http://www.cnblogs.com/beida/archive/2018/07/08/9279964.html

    发表评论:

    搜索
    本文二维码
    标签列表
    站点信息
    • 文章总数:545
    • 页面总数:20
    • 分类总数:96
    • 标签总数:213
    • 评论总数:63
    • 浏览总数:285197

    | | |
    | |  Z-Blog PHP