0

私はWordpress 4.5を使用しています。以前はローカルサーバーを使用して画像を保存していました(例:wp-content/uploads/2016/03/aaabbbccc.jpg)。今はAWS S3 BucketとCloudfrontに移行したいですが、Wordpressのデータベースを変更したくないので、データベースから取得するたびにクラウドフロントドメインに参加するプラグインを作成して(現在のドメインを置き換えて)wp-contentリンクにすることにしました例えば、https://xxyyzzqqaa.cloudfront.net/wp-content/uploads/2016/03/aaabbbccc.jpgWordpress - 読み込まれる前に注目画像のURIを変更する方法

私は私のプラグインでアクションフックを使用します。

add_action('the_post', 'change_featured_image'); 

今、私は次に何をすべきか分からないのですか?事前に感謝の言葉をお願いします!

答えて

0

私の問題の解決策を見つけましたが、それは非常に簡単ですが、私はWPの初心者ですので、これは見えません。あなたのプラグインで

、またはあなたがこのフィルタを追加し、ときWP負荷このイベントをキャッチしたい:
ADD_FILTER( 'post_thumbnail_html'、 'change_featured_image');
付:

  • post_thumbnail_htmlは、ビルドにWPのフィルタです。
  • change_featured_imageは、post_thumbnail_htmlの結果を返す前に関数、ユーザー定義、および実行されます。

私はこの機能を混乱させてしまいました。値を取得するための変数がわかりません。最後に、私はWP APIのドキュメントで、すべてのvarsビルドインフィルタを使用して、それも使用することができますが見つかりました。

ここではサンプルコードです:

function change_featured_image($attr) 
{ 

    global $wpdb; 

    $opt = get_option('s3dcs_status');//My value in `wp_options` 
    if(empty($opt)) echo $attr; 
    else{ 
     /// Preparing variables 
     $pattern = '~(http.*\.)(jpe?g|png|[tg]iff?|svg)~i'; 
      $m = preg_match_all($pattern,$attro,$matches); 
     $il = $matches[0][0]; 
     $tail = explode("wp-content", $il)[1]; 
     $s3dcs_remote_link = get_option('s3dcs_cfs3in') . "/wp-content" . $tail; 
       echo str_replace($il, $s3dcs_remote_link, $attr) ; 
    } 
} 

すべてです。問題がある場合は、誰でも知ることができるようにここに投稿してください。

関連する問題