移动设备的出列脚本和样式不起作用?

时间:2019-07-29 作者:PublicDisplayName

我已经学习了一些关于WP脚本和样式的出列和注销的教程,试图优化我的网站速度。

最初,我可以退出队列并取消注册,直到我为纯移动站点添加了一个条件。现在这些功能无法工作。

    add_action( \'wp_enqueue_style\', \'remove_default_stylesheet\', PHP_INT_MAX);
    if ( is_front_page() && wp_is_mobile() ) {    
        function remove_default_stylesheet() {

            wp_dequeue_script( \'contact-form-7\' );
            wp_deregister_script( \'contact-form-7\' );        

    }
    } elseif ( is_front_page() ) {
        function remove_default_stylesheet() {

            wp_dequeue_style( \'contact-form-7\' );
            wp_deregister_style( \'contact-form-7\' );

    }
    }

    add_action( \'wp_enqueue_scripts\', \'my_deregister_javascript\', PHP_INT_MAX);
    if ( is_front_page() && wp_is_mobile() ) {
        function my_deregister_javascript() {

            wp_dequeue_script( \'contact-form-7\' );
            wp_deregister_script( \'contact-form-7\' );

        }

    } elseif ( is_front_page() ) {

    add_action( \'wp_enqueue_scripts\', \'my_deregister_javascript\', PHP_INT_MAX);
function my_deregister_javascript() {

        wp_dequeue_script( \'contact-form-7\' );
        wp_deregister_script( \'contact-form-7\' );    

    }
} 
我正在尝试根据是否是主页以及用户是否在移动设备上退出和取消注册脚本和样式。

我不明白为什么尽管搜索了

1 个回复
最合适的回答,由SO网友:Sally CJ 整理而成

您应该运行条件标记(例如。is_front_page()) 从回调/函数内部(例如。remove_default_stylesheet()) —看见Where to Use Conditional Tags 以及警告here. 没有叫胡克的wp_enqueue_style; 只需使用wp_enqueue_scripts 对样式表文件进行排队/注册/出列/注销。

因此,我不确定您需要的确切条件,但以下内容将使contact-form-7 首页上的样式和脚本文件以及仅针对移动设备的样式和脚本文件:

add_action( \'wp_enqueue_scripts\', \'remove_default_stylesheet\', PHP_INT_MAX );
function remove_default_stylesheet() {
    // Remove contact-form-7 on the front page and only for mobile devices.
    if ( is_front_page() && wp_is_mobile() ) {
        wp_dequeue_style( \'contact-form-7\' );
        wp_deregister_style( \'contact-form-7\' );
    }
}

add_action( \'wp_enqueue_scripts\', \'my_deregister_javascript\', PHP_INT_MAX );
function my_deregister_javascript() {
    // Remove contact-form-7 on the front page and only for mobile devices.
    if ( is_front_page() && wp_is_mobile() ) {
        wp_dequeue_script( \'contact-form-7\' );
        wp_deregister_script( \'contact-form-7\' );
    }
}
您还可以组合以下功能:

add_action( \'wp_enqueue_scripts\', \'remove_plugin_scripts\', PHP_INT_MAX );
function remove_plugin_scripts() {
    // Remove contact-form-7 on the front page and only for mobile devices.
    if ( is_front_page() && wp_is_mobile() ) {
        // Remove style file.
        wp_dequeue_style( \'contact-form-7\' );
        wp_deregister_style( \'contact-form-7\' );

        // Remove script file.
        wp_dequeue_script( \'contact-form-7\' );
        wp_deregister_script( \'contact-form-7\' );
    }
}

相关推荐

初学者问题:通过管理Web界面访问Functions.php以导入自定义帖子类型?

是否可以访问这些功能。php文件仅仅使用管理web界面?我正在尝试访问以前创建的(手动编码的)自定义帖子类型,我不得不跳过很多障碍,因为我无法访问函数中的代码。php文件。我已经浏览了很多帮助页面,但建议的步骤似乎总是涉及到函数。php文件(我无法访问)或使用插件中的导入/导出工具,该插件首先创建了自定义帖子类型(据我所知,没有使用任何插件)。这似乎是一个非常基本的问题,但我一辈子都想不出来。任何帮助都将不胜感激!