
AvadaとComplianzでGravity Formsが表示されない時の解決法
AvadaテーマとComplianzの組み合わせで、クッキー同意前にGravity Formsのフォームが表示されない問題は、ComplianzがAvadaの必須設定スクリプト(fusion-lightbox-js-extra)をマーケティングスクリプトと誤判定しブロックするのが原因だ。Complianzの設定を変更し、このスクリプトをブロック対象から除外すれば解決する。
なぜComplianzがAvadaのスクリプトをブロックするのか(原因)

ComplianzはGDPRなどのプライバシー規制に対応するため、事前の同意なしに個人データを収集する可能性のあるスクリプトを自動で検出し、ブロックする。Avadaのfusion-lightbox-js-extraは、ライトボックス機能で使用する設定値(fusionLightboxVars)をページに埋め込むための必須の設定スクリプトだ。
しかしこのスクリプトの中に、SNS共有用のURLの一部としてLinkedInのURLが含まれている場合、Complianzのスキャナーが「LinkedInのマーケティングスクリプトではないか」と誤って分類してしまう。結果としてスクリプトのtype属性がtext/plainに書き換えられ、ブラウザがJavaScriptとして実行しなくなる。Gravity Formsの表示に必要なfusionLightboxVarsが定義されず、後続のJavaScriptがエラーになるというのが根本的な原因だ。
var fusionLightboxVars = { … };
</script>
var fusionLightboxVars = { … };
</script>
このデモは、Complianzが誤検出した際のスクリプトタグの変化と、除外設定後の正常な状態を比較したものだ。
ComplianzでAvadaのスクリプトをブロック対象から除外する手順
上記の手順は、Complianzの設定画面から行える最も安全で公式な対処法だ。各STEPの詳細を順に説明する。
スクリプトセンターで「Avada Fusion Builder」統合を有効にする
Complianz Free 7.5.0以降では「スクリプトセンター」内に「サードパーティとの統合」というセクションがあり、主要なテーマやプラグイン向けのプリセット設定が用意されている。ここで「Avada Fusion Builder」を有効にすると、ComplianzはAvadaのコアスクリプトをマーケティングカテゴリから除外し、必須スクリプトとして扱うようになる。
この設定によってfusion-lightbox-js-extraのブロックが解除され、fusionLightboxVarsが正しく定義されるため、Gravity Formsの表示エラーは解消する。もしこの統合が既に有効なのに問題が続く場合は、次の手順を試す。
特定のスクリプトをURL指定で除外する
統合を有効にしても問題が解決しない場合、該当のスクリプトをComplianzのスクリプトブロックから直接除外する方法がある。Complianzの「スクリプトセンター」には「URLを指定してブロック除外」という項目があり、ここに除外したいスクリプトのパスを追加する。
具体的には/wp-content/themes/Avada/assets/min/js/library/jquery.flexslider.jsもしくは/wp-content/plugins/fusion-builder/配下のスクリプトを除外リストに追加する。これによって該当のJSファイルがComplianzのブロック対象から完全に外れ、クッキー同意前でも実行されるようになる。
除外設定を追加したら、必ずシークレットウィンドウ(プライベートブラウジング)で動作を確認する。通常のブラウザでは既にクッキー同意済みの状態がキャッシュされているため、問題の再現確認にはシークレットモードが必須だ。
Complianzのフィルターフックでスクリプトのカテゴリを変更する方法(上級者向け)

特定のインラインスクリプトをComplianzのスクリプトブロックから除外する、より精密な方法として、Complianzが提供するフィルターフックを使う手がある。この方法は、スクリプトを誤分類から守りつつ、他のスクリプトのブロック機能は維持したい場合に有効だ。
テーマのfunctions.phpに除外フィルターを追加する
子テーマのfunctions.phpに以下のコードを追加することで、fusion-lightbox-js-extraのスクリプトハンドルをマーケティングカテゴリから外し、必須スクリプト(functionalカテゴリ)として扱える。
add_filter('cmplz_script_class', function($class, $total_match, $found) {
if ($found === 'fusion-lightbox-js-extra') {
return 'cmplz-native'; // 必須(functional)カテゴリとして扱う
}
return $class;
}, 10, 4);このフィルターはComplianzがスクリプトをスキャンする段階で動作し、指定したハンドル名(ここではfusion-lightbox-js-extra)を持つスクリプトの分類をcmplz-nativeに上書きする。cmplz-nativeは必須カテゴリ扱いとなり、クッキー同意前でもブロックされずに実行される。
コードを追加した後は、必ずサイトのキャッシュをクリアし、シークレットウィンドウで動作を確認する。また、Complianzの管理画面で「スクリプトセンター」→「スクリプトを再スキャン」を実行すると、変更が即座に反映される。
他のAvadaスクリプトが同様にブロックされる場合の追加対処

fusion-lightbox-js-extra以外にも、Avadaの他のスクリプトが同じ理由でブロックされるケースがある。特にfusion-video-js-extraやfusion-flexslider-js-extraといった-js-extraで終わるインラインスクリプトは、SNS共有URLを含むことが多く、同様に誤判定される可能性が高い。
ブラウザの開発者ツール(F12)でコンソールを開き、「is not defined」で終わるエラーが他に出ていないか確認する。もし複数のAvada変数が未定義になっている場合は、該当するスクリプトハンドルをすべてComplianzの除外対象に追加するか、前述のフィルターフックで一括して必須カテゴリに振り分ける。
恒久的な対策としては、Complianzの「スクリプトセンター」→「Avada Fusion Builder」統合が正式にこれらのスクリプトをカバーするよう、Complianz側のアップデートを待つのも一手だ。とはいえ、テーマとプラグインの両方を常に最新版に保つことで、多くの互換性問題は徐々に解消される。
よくある質問
Avada統合を有効にしても直らないのはなぜか
ComplianzのバージョンやAvadaのビルドによっては、統合機能がfusion-lightbox-js-extraまでカバーしていない場合がある。その場合はURL指定の除外かフィルターフックを併用する。また、キャッシュプラグインやCDNが変更前のスクリプトを配信し続けている可能性もあるため、すべてのキャッシュをクリアしてから再度確認する。
クッキー同意後はフォームが表示されるのに、同意前だけ出ないのはなぜか
まさに今回の問題の典型例だ。Complianzは同意前にマーケティングカテゴリのスクリプトをブロックする。Avadaのスクリプトが誤ってマーケティングカテゴリに分類されているため、同意前はブロックされ、同意後に初めて実行される。除外設定でこの誤分類を修正すれば、同意前でもフォームが表示されるようになる。
Gravity Forms以外のプラグインにも影響は出るのか
fusionLightboxVarsが未定義になると、Avadaのライトボックス機能全体が破綻する。そのためライトボックスに依存するあらゆる要素(ポップアップ、モーダルウィンドウ、Ajax読み込みのフォームなど)が影響を受ける可能性がある。Gravity Forms以外にも、ポップアップメーカーやモーダル系のプラグインを使っている場合は同様の症状が出ることがある。
Complianzの代わりに他のクッキープラグインを使うべきか
必須ではない。Complianzは無料版でも柔軟な除外設定が可能であり、問題のスクリプトを適切に除外すればAvadaとの共存に支障はない。GDPR対応のためのスクリプト管理機能は他のプラグインでも同様の誤検出リスクがあるため、移行するよりも現在の環境で正しく設定する方が効率的だ。
フィルターフックのコードを追加しても反映されない場合は
まずComplianzの「スクリプトセンター」で「スクリプトを再スキャン」を実行する。それでもダメなら、キャッシュプラグインの全クリアとCDNのパージを行う。また、cmplz_script_classフィルターの優先度(第三引数の10)を9999に上げると、他の処理より後に実行されて確実に上書きされる。
この記事のポイント
- ComplianzがAvadaの必須スクリプトをLinkedInマーケティングスクリプトと誤判定しブロックするのが原因
- Complianzの「スクリプトセンター」でAvada Fusion Builder統合を有効にするのが最も簡単な解決策
- 統合で直らない場合はURL指定除外かフィルターフックで該当スクリプトを必須カテゴリに振り分ける
- 修正後は必ずシークレットウィンドウで動作を確認し、キャッシュのクリアを忘れずに行う

・ Reddit、Stack Overflow、WordPress.org フォーラムを日々巡回し、現場の悩みを拾い上げて記事化
・ WordPress、WooCommerce、Next.js などモダンWeb制作領域のトラブルシューティングが専門
・ 「検索しても答えが見つからなかった」を一つでも減らすことが目標
・ エラーメッセージから根本原因にたどり着く粘り強い調査が得意
・ 初心者がつまずきやすい箇所を先回りで解決する記事作りを心がけている
