样式表在<head>之外加载

时间:2013-09-24 作者:charlenemasters

Wordpress(3.6)正在加载两个样式表(mediaelement-css, .../wp包括/js/mediaelement/mediaelementplayer。最小css?ver=2.13.0和wp-mediaelement-css, .../wp包括/js/mediaelement/wp mediaelement。css?ver=3.6),位于wp\\U页脚,而不是wp\\U页眉。我收到一个HTML5错误,因为他们没有添加属性属性。我发现,如果样式表在<head> 没有属性属性。如果在中加载,则不需要属性属性。

有没有办法将这两个样式表加载到<head> 而不是<body> 要消除错误?

2 个回复
SO网友:ferenyl

只有在帖子或页面中包含视频或声音并且在wp\\u head之后才加载这两个样式表。

但不要绝望!有一个过滤器你可以使用!代码中如下所示:

apply_filters( \'style_loader_tag\', "<link rel=\'$rel\' id=\'$handle-css\' $title href=\'$href\' type=\'text/css\' media=\'$media\' />\\n", $handle );
所以我写了一个函数:

//add the filter
add_filter( "style_loader_tag", "change_css_links", 10, 2 );

// Function for the filter
function change_css_links($css, $handle){
    //load global styles to get src
    global $wp_styles;

    //check if it is the correct style
    if($handle == "mediaelement" || $handle == "wp-mediaelement"){
        //if it is: do awesome stuff
        // get all info for the css in array
        $css_info = $wp_styles->registered[$handle];

        //the array looks like this:
        /*
        [mediaelement] => _WP_Dependency Object
        (
            [handle] => mediaelement
            [src] => /wp-includes/js/mediaelement/mediaelementplayer.min.css
            [deps] => Array
                (
                )

            [ver] => 2.13.0
            [args] => 
            [extra] => Array
                (
                )

        )
        */
        // do the awesome
        $css = "your new and awesome link element!";
    }

    //return the new or old awesome!
    return $css;

}
或者,您可以取消注册样式并在每个页面上加载它们。

SO网友:jmmeijer

可以将以下代码添加到介质中。php或您的函数。php:

function wp_mediaelement_scripts(){
    $library = apply_filters( \'wp_audio_shortcode_library\', \'mediaelement\' );
    if ( \'mediaelement\' === $library && did_action( \'init\' ) ) {
        wp_enqueue_style( \'wp-mediaelement\' );
        wp_enqueue_script( \'wp-mediaelement\' );
    }
}
add_action( \'wp_enqueue_scripts\', \'wp_mediaelement_scripts\' );
并从函数wp\\u audio\\u shortcode()和wp\\u video\\u shortcode()中注释掉以下内容:

$library = apply_filters( \'wp_audio_shortcode_library\', \'mediaelement\' );
if ( \'mediaelement\' === $library && did_action( \'init\' ) ) {
    wp_enqueue_style( \'wp-mediaelement\' );
    wp_enqueue_script( \'wp-mediaelement\' );
}

结束

相关推荐

添加wp_enQueue_media();导致问题

我想在主题选项页面中添加媒体上载程序。如果我在选项页面中添加以下代码,媒体上传器在那里工作正常,但它会在标准帖子的特色图片中产生问题。它不允许我从那里选择任何图像。是不是因为我用错误的方式添加了它?if ( ! did_action( \'wp_enqueue_media\' ) ){ wp_enqueue_media(); } 下面是我正在使用的上传功能:$(\'#upload_img\').click(function(){ wp.media.edit