如果CDN失败,如何为Font Awesome提供本地回退?

时间:2014-04-24 11:41:40

标签: wordpress cdn font-awesome

我正在尝试开发一个Wordpress主题,并弄清楚如果CDN失败或我在没有互联网连接的本地服务器上开发我的主题,如何为Font Awesome提供本地回退。

我想到的解决方案是这样的(伪代码):

if ( $CDN_IS_AVAILABLE ) { 
    wp_enqueue_style( 'font-awesome', '//netdna.bootstrapcdn.com/font-awesome/4.0.3/css/font-awesome.min.css', false );
} else {
    wp_enqueue_style('font-awesome', get_template_directory_uri() . '/css/font-awesome/css/font-awesome.min.css', false, '4.0.3' );
}

感谢。

1 个答案:

答案 0 :(得分:4)

这个怎么样?

<?php
    $test_url = @fopen('https://netdna.bootstrapcdn.com/font-awesome/4.0.3/css/font-awesome.min.css','r');
    if ( $test_url !== false ) {
        // Use CDN  
        function load_external() {
            wp_enqueue_style( 'font-awesome', '//netdna.bootstrapcdn.com/font-awesome/4.0.3/css/font-awesome.min.css', false );
        }
        add_action( 'wp_enqueue_scripts', 'load_external' );
    } else {
        // Use local if url is not available
        function load_local() {
            wp_enqueue_style('font-awesome', get_template_directory_uri() . '/css/font-awesome/css/font-awesome.min.css', false, '4.0.3' );
        }
        add_action( 'wp_enqueue_scripts', 'load_local' );
    }
?>

除此之外,您还可以在函数中添加wp_enqueue_script以对JS执行相同的操作。