ローカル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/' );
}
次のコードを使用して、一時的に出力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
からこの関数を削除してください。
そのための最善の方法はURL Rewritesを使うことです。
こうすれば、CODEをサーバーにアップロードし直す前に何も変更する必要はありません。 .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>
上記のコードに従ってライブドメインをsiteurl.com
に調整してください。そうすれば、あなたがlocalhostから開発するときにあなたのサーバーイメージがロードされます。
また、次の行でRewriteCond %{REQUEST_FILENAME} !-f
を指定すると、Webサーバーは最初にイメージがlocalhost
で使用可能かどうか(まったく同じ名前で)確認し、ローカルで使用可能でない場合にのみサーバーからロードします。同じイメージがローカルに存在していてもサーバーイメージをロードしたい場合は、その行を削除してください。