W3TotalCache設置「WP_CACHE」不斷爲真config.php:
/** Enable W3 Total Cache */
define('WP_CACHE', true); // Added by W3 Total Cache
當WP_Cache設置爲true時,聯繫表單7將進行您描述的Ajax調用。
這發生在的script.js:
if (_wpcf7.cached)
this.wpcf7OnloadRefill();
看來這個功能真的只需要,當您使用的驗證碼或測驗,如在此間指出,https://wordpress.org/support/topic/plugin-contact-form-7-wpcf7onloadrefill-not-useful-and-causing-load
爲了避免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);
}
說明:
聯繫表格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。這實際上插入了相同的內聯代碼,但沒有「緩存」屬性,恰好在聯繫表單7生成的內聯代碼下面。
享受!
這種解決方案不再有效作爲wpcf7_ajax_loader()已經從插件 –