[wp]ContactForm7のcssとjsの読み込み先を限定する方法

余計なものは読ませない的なやつ。

通常

CF7を導入するとこんな感じでサイト内の全ページの下部に記載がある。

<script type='text/javascript' src='https://****.com/wp-content/plugins/contact-form-7/includes/swv/js/index.js?ver=5.7.7' id='swv-js'></script>
<script type='text/javascript' id='contact-form-7-js-extra'>
/* <![CDATA[ */
var wpcf7 = {"api":{"root":"https:\/\/****.com\/wp-json\/","namespace":"contact-form-7\/v1"}};
/* ]]> */
</script>
<script type='text/javascript' src='https://****.com/wp-content/plugins/contact-form-7/includes/js/index.js?ver=5.7.7' id='contact-form-7-js'></script>

CF7を全ページに埋め込むケースはレア。

ということで、不要な読み込みを減らす方法。

こう

全ページから消去して、特定条件で出力させる。

function remove_cf7(){
    add_filter('wpcf7_load_js', '__return_false');
    add_filter('wpcf7_load_css', '__return_false');
}
add_action('after_setup_theme', 'remove_cf7');
function add_cf7(){
    if(is_page('contact') || is_page('entry')){
        if (function_exists('wpcf7_enqueue_scripts')){
            wpcf7_enqueue_scripts();
        }
        if(function_exists('wpcf7_enqueue_styles')){
            wpcf7_enqueue_styles();
        }
    }
}
add_action('wp_enqueue_scripts', 'add_cf7');

CF7を使うページ以外で読ませない、って書き方をしたかったんだけど、after_setup_theme時に条件を噛ませてもダメだった。ちょっと回りくどい感じがあるけどまあ良いでしょう。

コメント

タイトルとURLをコピーしました