Shoora
4/22/2019 - 9:31 AM

HTTP/2 Push CSS/JS with Autoptimize WordPress's plugin

HTTP/2 Push CSS/JS with Autoptimize WordPress's plugin

<?php

add_filter('autoptimize_filter_cache_getname', 'pushAOFiles');

function pushAOFiles($in) {
    $pushType = substr($in, strrpos($in, ".") + 1) === "js" ? "script" : "style";
    
    // Do not push CSS files if it is already inline.
    if ($pushType == "style" && ((bool)get_option("autoptimize_css_inline", true))) return;

    header('Link: <' . $in . '>; rel=preload; as=' . $pushType, false);
    return $in;
}

add_filter('autoptimize_filter_js_exclude', 'pushJQuery');

function pushJQuery($in) {
    if (strpos($in, "js/jquery/jquery.js") !== false) {
        $jQurl = includes_url("js/jquery/jquery.js");
        header('Link: <' . $jQurl . '>; rel=preload; as=script', false);
    }
}