2016-06-13 36 views
0

正如你所知道的頭WP樣式鏈接是這樣的:用<noscript>包裝wp打印樣式?

<link rel="stylesheet" id="my-id" href="my.css" type="text/css" media="all"> 

是否有任何過濾器或功能來包裝所有的CSS頭在

<noscript>標籤?

Sory的問題,但沒有找到其他地方的東西!預先感謝幫助我!

回答

0

晚會有點遲,但認爲我會拋出我發現的東西。 (假設您正在嘗試通過Google Speed Insights和腳本的塊傳遞來實現此目的,則可以使用https://developers.google.com/speed/docs/insights/OptimizeCSSDelivery)。

add_action('wp_print_styles', 'my_print_styles'); 

function my_print_styles($handles = false) { 
    global $wp_styles; 
    if (! ($wp_styles instanceof WP_Styles)) { 
     if (! $handles) { 
     return array(); // No need to instantiate if nothing is there. 
     } 
    } 

echo '<noscript id="deferred-styles">'; 
wp_styles()->do_items(); 
echo '</noscript><script> 
    var loadDeferredStyles = function() { 
    var addStylesNode = document.getElementById("deferred-styles"); 
    var replacement = document.createElement("div"); 
    replacement.innerHTML = addStylesNode.textContent; 
    document.body.appendChild(replacement) 
    addStylesNode.parentElement.removeChild(addStylesNode); 
    }; 
    var raf = requestAnimationFrame || mozRequestAnimationFrame || 
     webkitRequestAnimationFrame || msRequestAnimationFrame; 
    if (raf) raf(function() { window.setTimeout(loadDeferredStyles, 0); }); 
    else window.addEventListener(\'load\', loadDeferredStyles); 
</script>'; } 

可能不是最優雅的靈魂問題,但可能會做到這一點。