开发者 | pdclark |
---|---|
更新时间 | 2017年5月9日 08:44 |
PHP版本: | 3.1 及以上 |
WordPress版本: | 4.7.4 |
版权: | GPLv2 or later |
版权网址: | 版权信息 |
wp-content/uploads
to your local WordPress install. Instead, images missing from the uploads directory are loaded from the production server as needed.
Setup
In most cases, you should be able to activate the plugin and go. If the plugin does not work automatically, then you need to set the address of your live WordPress install in wp-config.php
, like this:
define('UBP_SITEURL', 'http://example-live.com/wordpress');
If you are on a staging server (not a local development environment) you may need to force the plugin to run with define( 'UBP_IS_LOCAL', true );
in wp-config.php
. Do not set this on a live site!
uploads-by-proxy
folder to the /wp-content/plugins/
directoryWP_SITEURL
, set your live site address in wp-config.php
like this: define('UBP_SITEURL', 'http://example-live.com/wordpress');
Maybe you work on a site with gigabytes of images in the uploads directory, or maybe you use a version control system like SVN or Git, and prefer to not store wp-content/uploads
in your repository. Either way, this plugin allows you to not worry about the uploads folder being up-to-date.
"Production" is a term that's used to refer to a version of a site that is running live on the Internet. If you normally edit your site through the WordPress code editor or over FTP, you are making edits on the production server. Editing your site in this way risks crashing the site for your visitors each time you make an edit.
"Development" refers to a version of your site that is in a protected area only accessible to you. Programs like MAMP, WAMP, and XAMPP allow you run a copy of your WordPress site in a way that is only accessible from your computer. This allows you to work on a copy and test changes without effecting the live site until you are ready to deploy your changes.
This plugin only goes into action when an image is missing on your local copy. When it runs, it copies the file into your local wp-content/uploads folder and doesn't run again. If you'd like to update an image with the production copy again, delete your local copy.
Nothing. The plugin only takes action if it detects it is on a local development environment.
The plugin only loads if the server address and browser address are both 127.0.0.1
. This should catch most local environments, such as MAMP, WAMP, and XAMPP.
If your local domain is the same as the remote domain, and automatic IP detection doesn't work, use the ubp_remote_ip
filter to set IP address programatticaly.
Example: add_filter( 'ubp_remote_ip', function(){ return '12.34.56.789'; } );
If you want to run the plugin on a staging server, or have some other situation where you want to force the plugin to run, set define('UBP_IS_LOCAL', true);
in wp-config.php.
Warning! Do not force UBP_IS_LOCAL
to true
on a production site! If if have any 404 requests for images in the uploads directory, it will cause PHP to go into an infinite loop until Apache kills the process. This could make your site run very slowly.
It asks one of several remote servers what it thinks the IP address of your production domain is, then uses that IP to request the missing image. The correct domain name is sent in headers so that virtualhosts resolve.
You can define your own server that will return an IP address when given a domain name. In your WordPress install, you would put this in a plugin or functions.php:
add_filter('ubp_ip_url', 'ubp_ip_url', 10, 2); function ubp_ip_url( $url, $domain ) { return 'http://yoursite.com/ip.php?domain='.$domain; }
yoursite.com would be replaced with your own site address, and ip.php would contain:
<?php echo gethostbyname( $_GET['domain'] ); ?>
ubp_remote_ip
filter to set IP address programatticaly. Usage: add_filter( 'ubp_remote_ip', function(){ return '12.34.56.789'; } );
ubp_remote_ip
filter to set your remote IP address.WP_SITEURL
is being set in wp-config.php
.UBP_LIVE_SITE
to UBP_SITEURL
and match format to WP_SITEURL
.UBP_LIVE_SITE
.