2

私は現在 W3 Total Cache をワードプレス Web サイトで動作させようとしていますが、CDN url リクエストが送信される際に奇妙な動作に気付きました。

私はcloudfront cdnを使用しており、cloudfront URLを指すCNAME(cdn.test.com)を指しています。

これで、テーマの一部ではないすべての画像、css、および javascript が、CDN CNAME URL で適切にレンダリングされます。

example: http://cdn.test.com/wp-content/2015/01/image-150X150.jpg
http://cdn.test.com/wp-includes/base/css/style.css
http://cdn.tes.com/wp-includes/base/js/home.js

(これはクラウドフロントの URL でも同様に発生することも付け加えておきます。) しかし、woo テーマの一部である css と javascript に関しては、次のようにレンダリングされます。

http://cdn.test.com/http://example.com/wp-content/themes/test-theme/js/theme.js
http://cdn.test.com/http://example.com/wp-content/themes/test-theme/css/theme.css

私はこれをテーマ開発者や関係者に取り上げましたが、彼らからはほとんど何も出ていません.

preg_replace を使用して奇妙な URL の出現を照合し、それを空の文字列に置き換えるなど、さまざまなオプションを調べました。

ただし、参照ドキュメントhttps://support.woothemes.com/hc/en-us/articles/203106877-Canvas-Hook-Filter-Referenceから間違った add_action または add_filter を使用/呼び出していたため、これは機能しませんでした。 wordpressの(wp_headまたはwp_footerを意味します)。

お気づきかもしれませんが、私はワードプレスの経験がありません。これで何が起こっているのか、または何が間違っているのか、そしてこの問題を解決できる方法を説明してください.

ご協力いただきありがとうございます。

4

1 に答える 1

0

最後に、このコードでこの問題を追跡して修正します。

add_filter('w3tc_cdn_url', 'fix_host_in_cdn_url',10,3);
function fix_host_in_cdn_url($content) {
  $content = preg_replace("/(\/http?:\/\/[\da-z\.-])/", '', $content);
  return $content;
}
于 2015-04-30T00:18:02.110 に答える