Wie registriere und setze ich den http / 2 Server Prefetch für ein bestimmtes Asset?

Ich habe dieses Plugin benutzt und es sagt

WordPress 4.6 führte native Unterstützung für Ressourcenhinweise ein. Standardmäßig weist dieses Plugin auf WordPress 4.6 und Theme / Plugin-Entwickler zurück, um die richtigen Assets verantwortungsvoll vorzuladen. Websites, die auf älteren WordPress-Versionen ausgeführt werden, erhalten weiterhin das vorherige Verhalten, bei dem für alle JavaScript- und Stylesheets Ressourcenhinweise gedruckt wurden.

Ich habe einen Filter hinzugefügt, um das alte Verhalten (Hinweis alles) auf WordPress 4.6 und höher wiederherzustellen. Um es zu verwenden, fügen Sie diese Zeile der functions.php-Datei Ihres Themes oder einem benutzerdefinierten Plugin hinzu:

Ich habe mir den Code angeschaut und er scheint extrem hacky und schrecklich für mich zu sein (nicht so wie es gemacht wird, so wie es scheint, dass es an diesem Punkt getan werden musste)

Ich benutze den Filter, um jetzt alles zu deuten (wahrscheinlich eine schlechte Idee). Ich bin mal über einen Thread auf wp Core Track gestolpert, aber ich kann es nicht finden. Von dem Einführungspfosten Code lerne ich wirklich nicht so viel.

Was ich möchte ist nur etwas wie

wp_register_script( ..., $http_prefech = true ); 

Ich denke, dass das auch irgendwo auf trac diskutiert wurde.

Kann es einen solchen Wrapper geben, oder können Sie mir auf einfachste Art und Weise zeigen, wie ich ein bestimmtes Asset zum Prefetch einstelle?

Solutions Collecting From Web of "Wie registriere und setze ich den http / 2 Server Prefetch für ein bestimmtes Asset?"

Die Unterstützung für Ressourcenhinweise in WordPress erfolgt über das rel Attribut von -Elementen im HTML-Dokument, nicht beim HTTP / 2-Server-Push (der Link Header in der HTTP-Antwort verwendet). Sie können den Filter wp_resource_hints , um die URLs hinzuzufügen, für die Sie den Prefetch benötigen:

 add_filter( 'wp_resource_hints', 'cyb_resource_hints', 10, 2 ); function cyb_resource_hints( $urls, $relation_type ) { if( 'prefetch' == $relation_type ) { $urls[] = 'https://exmaple.com/assets/script.js'; } return $urls; } 

Wenn Sie HTTP / 2 Server Push bevorzugen, können Sie den Link Header mit PHP, .htaccess auf Apache usw. setzen.

Zum Beispiel mit PHP:

 header("Link: ; rel=preload; as=style"); 

Und Sie können es mit WordPress auf mehreren Ebenen, in der Regel template_redirect Aktion, zum Beispiel integrieren:

 add_action( 'template_redirect', 'cyb_push_styles' ); funciton cyb_push_styles() { header("Link: ; rel=preload; as=style"); }