如何在本地安装上使用实时镜像?

时间:2017-02-21 作者:Maarten Heideman

如何在本地WP安装上使用实时图像?我想在下面的wp-config.php. 问题是siteurl 必须是相对路径,不能是url。我想建立一个本地环境来离线测试某些部件,并需要显示图像。

if ($_SERVER[\'SERVER_ADMIN\'] == \'dev\') {
  define(\'WP_HOME\',\'http://localhost/siteurl.com/public_html/\');
  define(\'WP_SITEURL\',\'http://localhost/siteurl.com/public_html/\');
  // use live images
  define( \'UPLOADS\', \'http://siteurl.com/wp-content/uploads/\' );
}

3 个回复
最合适的回答,由SO网友:Johansson 整理而成

尝试使用以下代码临时筛选输出URL以将其替换为联机图像:

add_filter( \'wp_get_attachment_image_src\', function ( $image, $attachment_id, $size ) {

    // For thumbnails
    if ( $size ) {
        switch ( $size ) {
            case \'thumbnail\':
            case \'medium\':
            case \'medium-large\':
            case \'large\':
                $image[0] = str_replace( \'localhost/\', \'EXAMPLE.COM/\', $image[0] );
                break;
            default:
                break;
        }
    } else {
        $image[0] = str_replace( \'localhost/\', \'EXAMPLE.COM/\', $image[0] );
    }
    return $image;
}, 10, 3 );
这将替换包含localhost 使用您的在线域名。然而,您不能修改或处理图像的,它只是为了更正URL以便于开发。

请注意,您应该使用不带http:// 或任何/ 在域名之前。

从主题中删除此函数functions.php 在你做完之后。

SO网友:Scott

最好的方法是使用URL重写。

这样,在再次将代码上传回服务器之前,您不必做任何更改。在中尝试以下代码.htaccess 文件:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /

# custom rules for loading server images or any other uploaded media files
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{HTTP_HOST} ^localhost$
RewriteRule ^.*/uploads/(.*)$ http://siteurl.com/wp-content/uploads/$1 [L,R=301,NC]

# default WordPress rules
RewriteRule ^index\\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
将您的live domain调整为siteurl.com 因此,在上述代码中,当您从localhost开发时,将加载服务器映像。

此外,使用此行:RewriteCond %{REQUEST_FILENAME} !-f, web服务器将首先检查您的localhost (使用完全相同的名称),并且仅当服务器在本地不可用时才从服务器加载。如果您想加载服务器映像,即使本地存在相同的映像,只需删除该行即可。

SO网友:Giorgio25b

我调整了@scott answer,以满足我的需求:

# custom rules for loading server images or any other uploaded media files
RewriteCond %{REQUEST_URI} ^/wp-content/uploads/[^\\/]*/.*$
RewriteRule ^(.*)$ https://siteurl.com/$1 [QSA,L]

相关推荐

有没有可能在不使用wp-config.php、.htaccess或php.ini中的指令的情况下增加php内存?

我使用的插件由于内存不足而崩溃。但我所在的主机(万神殿)使用git在开发服务器(我有FTP访问权限)和实时服务器(我没有FTP或SSH访问权限)之间进行文件更新。我无法更改wp配置。php和提交文件,因为Dev和Live之间的数据库详细信息不同。php。不允许使用ini文件和中的PHP指令。不允许htaccess。如何为Live增加PHP内存?我可以在主题文件中添加指令吗?类似功能。php?这对插件内存有效吗?