【问题标题】:Wordpress - unable to enqueue / dequeue style CSS with part of the code interferingWordpress - 无法将样式 CSS 入队/出队,部分代码干扰
【发布时间】:2016-03-29 21:48:52
【问题描述】:

我在使用 Awesome 字体对样式 CSS 表进行入队和出队时遇到了问题。在我的 functions.php 子主题文件中,我尝试将默认主题文件出列并从 CDN 服务器下载新版本。

在我介绍“移动渲染阻止 JavaScript”之前,它工作得 100% 正常。部分代码。下面的代码没有加载来自 CDN 的 CSS 样式表,而不是 50 毫秒的时间来获取 woff 文件,根据 GTmetrix 和 pingdom,现在从我的 FTP 的 Storefront 主题字体文件夹获取大约需要 600 毫秒(顺便说一句,我不知道为什么差别太大了)。

我什至为 Wordpress 尝试了更好的字体真棒插件,而不是我的字体 sn-p,但结果是一样的 - 无需移动脚本即可工作,不能使用它。

// Move render-blocking JavaScript.
function custom_clean_head() {  
   remove_action('wp_head', 'wp_print_scripts'); 
   remove_action('wp_head', 'wp_print_head_scripts', 9);
   remove_action('wp_head', 'wp_enqueue_scripts', 1);

   add_action('wp_footer', 'wp_print_scripts', 5);   
   add_action('wp_footer', 'wp_print_head_scripts', 5);
   add_action('wp_footer', 'wp_enqueue_scripts', 5);
}
add_action( 'wp_enqueue_scripts', 'custom_clean_head' );

// Specify FontAwesome character set early.
add_action( 'wp_enqueue_scripts', 'layers_child_styles', 100);
add_action( 'wp_footer', 'load_awesome', 1); 
if( ! function_exists( 'layers_child_styles' ) ) { 
 function layers_child_styles(){ 
 wp_dequeue_style('layers-font-awesome');
 wp_dequeue_style('font-awesome');
 }
 function load_awesome() { 
 wp_enqueue_style('font-awesome', '//maxcdn.bootstrapcdn.com/font-awesome/4.5.0/css/font-awesome.min.css', $deps = array(), $ver = false);
 }
}

【问题讨论】:

    标签: php wordpress webfonts


    【解决方案1】:

    试试这个

    // Remove and Unregister Styles
    function layers_child_styles(){ 
        wp_dequeue_style('layers-font-awesome');
        wp_dequeue_style('font-awesome');
        wp_deregister_style('font-awesome');
    }
    add_action( 'wp_print_styles', 'layers_child_styles', 999);
    
    // Add Additional Script or style
    function load_awesome() { 
        wp_enqueue_style('font-awesome', '//maxcdn.bootstrapcdn.com/font-awesome/4.5.0/css/font-awesome.min.css');
    }
    add_action( 'wp_enqueue_scripts',  'load_awesome' 999);
    

    【讨论】:

    • 纯代码答案不是很有帮助。你改变了什么?为什么会这样?
    • 999 之前的最后一行缺少逗号,但代码帮助我更接近 - CDN 样式显示,而且我的 FTP 服务器加载的字体,所以看起来注销时有问题或出队。
    • 最后添加你的custom_clean_head函数。并确保它在您移动处理脚本和样式功能的默认挂钩时最后触发,add_action( 'wp_enqueue_scripts', 'custom_clean_head', 9999999 );
    • 用 wp_head 替换 wp_print_styles 完全解决了这个问题。现在我的 FTP 中的字体永远不会加载,只有 CDN 字体会。
    猜你喜欢
    • 2022-11-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-15
    • 1970-01-01
    • 2022-10-14
    相关资源
    最近更新 更多