W3TotalCache は、これを wp-config.php に追加して、"WP_Cache" 定数を true に設定します。
/** Enable W3 Total Cache */
define('WP_CACHE', true); // Added by W3 Total Cache
WP_Cache が true に設定されている場合、Contact Form 7 は説明した Ajax 呼び出しを行います。
これは script.js で発生します。
if (_wpcf7.cached)
this.wpcf7OnloadRefill();
ここで指摘されているように、キャプチャまたはクイズを使用する場合にのみ機能が必要なようです: https://wordpress.org/support/topic/plugin-contact-form-7-wpcf7onloadrefill-not-useful-and-原因負荷
ajax 呼び出しを回避するには、functions.php に次のコードを配置します。
// Hack Contact Form 7 to avoid unwanted ajax calls
// see http://stackoverflow.com/questions/19632244/is-w3-total-cache-compatible-with-contact-form-7
add_action('wpcf7_enqueue_scripts', 'hack_cf7');
function hack_cf7() {
$_wpcf7 = array(
'loaderUrl' => wpcf7_ajax_loader(),
'sending' => __( 'Sending ...', 'contact-form-7' )
);
wp_localize_script( 'contact-form-7', '_wpcf7', $_wpcf7 );
}
説明:
Contact form 7 は、wp_localize_script を使用してインライン JavaScript を追加します。これは、WP_CACHE が設定されている場合、次のようになります。
var _wpcf7 = {
"loaderUrl":"http:\/\/elsassfonden.dk\/wp-content\/plugins\/contact-form-7\/images\/ajax-loader.gif",
"sending":"Sender ...",
"cached":"1"
};
WP_CACHE が設定されていない場合、「キャッシュされた」プロパティは除外されます。これは、controller.php の関数 wpcf7_enqueue_scripts() で発生します。
私が提供したコードは、wpcf7_enqueue_scripts() が実行された直後に wp_localize_script を呼び出します。これにより、実際には同じインライン コードが挿入されますが、「キャッシュされた」プロパティはなく、Contact Form 7 によって生成されたインライン コードのすぐ下に挿入されます。
楽しみ!