删除联系表格7 CSS和JS除非在页面中使用联系表格7短代码

时间:2018-02-22 09:16:13

标签: wordpress contact contact-form-7

我只想在该页面中使用短代码时显示css和javascript。如果wordpress页面中没有短代码,则不应显示联系表单的js和css。为此,我所做的是将以下代码粘贴到我的主动主题function.php文件中。

add_filter( 'wpcf7_load_js', '__return_false' );
add_filter( 'wpcf7_load_css', '__return_false' );

上面的代码完全删除了联系表单7插件的js和css。我需要的是,如果粘贴了联系表格7短代码,则应显示两者。

2 个答案:

答案 0 :(得分:1)

您使用以下代码。您可以在此代码中添加您的网页ID。

function dvk_dequeue_scripts() {

    $load_scripts = false;

    if( is_singular() ) {
        $post = get_post();

        if( has_shortcode($post->post_content, 'contact-form-7') ) {
            $load_scripts = true;
        }

    }

    if( ! $load_scripts ) {
        wp_dequeue_script( 'contact-form-7' );
        wp_dequeue_style( 'contact-form-7' );
    }

}

add_action( 'wp_enqueue_scripts', 'dvk_dequeue_scripts', 99 );

Reference

答案 1 :(得分:1)

以下是您的问题的答案。如果没有短代码,将删除联系表格的css和js,如果有短代码,则会添加js。

function rjs_lwp_contactform_css_js() {
    global $post;
    if( is_a( $post, 'WP_Post' ) && has_shortcode( $post->post_content, 'contact-form-7') ) {
        wp_enqueue_script('contact-form-7');
         wp_enqueue_style('contact-form-7');

    }else{
        wp_dequeue_script( 'contact-form-7' );
        wp_dequeue_style( 'contact-form-7' );
    }
}
add_action( 'wp_enqueue_scripts', 'rjs_lwp_contactform_css_js');