WordPressで、プラグインを使わずにContactForm7のjsとcssを指定ページのみ読み込ませる方法をご紹介します。
通常ContactForm7を導入すると、すべてのページでjsとcssが読み込まれその分表示速度も低下してしまいますが、この方法を使うことによってそれを防止することができます。
functions.phpの編集を行います。
子テーマが利用できる環境であれば子テーマのfunctions.phpを利用してください。
※必ずバックアップをとってから編集してください。
読み込むページが1ページのみの場合
function deregister_cf7_files() {
if ( ! is_page(ページID) ) {
wp_dequeue_style( 'contact-form-7' );
wp_dequeue_script( 'contact-form-7' );
}
}
add_action( 'wp_enqueue_scripts', 'deregister_cf7_files' );
もっと簡単なコード
ページのスラッグが”contact”というページのみ読み込ませたい場合は、次の通り。
2行目の’contact’の部分に任意のスラッグを入力します。
add_action( 'wp', function() {
if ( is_page( 'contact' ) ) return;
add_filter( 'wpcf7_load_js', '__return_false' );
add_filter( 'wpcf7_load_css', '__return_false' );
});
読み込むページが複数ある場合
function deregister_cf7_files() {
if ( ! is_page(array('ページID1','ページID2')) ) {
wp_dequeue_style( 'contact-form-7' );
wp_dequeue_script( 'contact-form-7' );
}
}
add_action( 'wp_enqueue_scripts', 'deregister_cf7_files' );
まとめ
私は、問い合わせページが後々増えることを想定して、上記の「読み込むページが複数ある場合」のコードをはじめから利用しています。
作業自体は時間もかからず、すぐに実装できますので宜しければ参考にされてください。
最後までご覧いただきありがとうございました。