2017-01-19 7 views
5

最近メディアライブラリからs3に画像をアップロードするプラグインをインストールしました。ワードプレスの出力URLを変更する[ギャラリー]ショートコード

私はまたFTPのアップロードフォルダ全体を約4000枚の画像を含むs3に持っています。

私は自分のサイト全体でwordpress gallery shortcodeをどこかに使用していましたが、何とかそれがsiteurlを出力しています。

S3バケットのURLにするためにURLを上書きできるように変更するにはどうすればよいですか?

私は私がここでやったり起動するのです何見当がつかない認めると私は本当にあなたの助けに感謝します:)

+0

インストールしたプラグインをアップデートできますか?私はこの仕事を達成するために多くがあると思います。一部のプラグインは、S3に直接アップロードしているときにファイルをサポートしていません。 –

答えて

1

あなたが検索&は、データベースを経由して交換するようにしたいかもしれません。

あなたはポストにイメージパスを変更するには、SQLクエリを作成する方法をここで見ることができます:13 Useful WordPress Queries

UPDATE wp_posts SET post_content = REPLACE (post_content, 'src="http://www.oldsiteurl.com', 'src="http://yourcdn.newsiteurl.com'); 
UPDATE wp_posts SET guid = REPLACE (guid, 'http://www.oldsiteurl.com', 'http://yourcdn.newsiteurl.com') WHERE post_type = 'attachment'; 
+0

既にこれと考えられています。ただし、ギャラリーショートコードに使用されるURLは、サイトURLに使用されているものと同じです。だから、もし私がそれを変えれば、画像はうまくいくが、サイトは壊れるだろう。キャッチ22 – JamesG

2

あなたは属性出力SRC画像をフィルタリングし、次のように新しいURLに古いURLを置き換えることができます。以下のコードをテーマfunctions.phpにコピーし、www.oldurl.comwww.newurl.comをあなたのURLに置き換えてください。

add_filter('wp_get_attachment_image_src', function ($image) { 
    if(is_array($image)){ 
     $image[0] = str_replace('www.oldurl.com', 'www.newurl.com', $image[0]); 
    } 

    return $image; 
}, 999); 
2

wp_get_upload_dir()を見ると、それはwp_upload_dir()のラッパーだ、それは再び我々はアップロードURLがupload_url_pathオプションで変更することができることがわかり、_wp_upload_dir()のラッパーです。

すべてのアップロードをS3に移動しているので、S3バケットベースのURLをupload_url_pathオプションに追加しようとする可能性があります。

あなたの現在の設定でどのように動作するかを確認するために、まずdevインストールでこれをテストする必要があります。

関連する問題