Ankerlink an den Anfang der Seite
foto von lionolin, pixabay
Generic filters
Filter by Kategorien

Der Beitrag, geschriebem am 17. November 2022, ist schon etwas älter und könnte womöglich nicht mehr aktuell sein

Das Lazy-Loading des „Largest Contentful Paint-Bildes“ löst eine Lighthouse-Warnung aus. Meistens dürfte das Einzelbeiträge mit Beitragsbildern treffen. Die von mir über den Coverblock eingefügten Beitragsbilder erhielten das Attribut „loading“ mit dem Wert „lazy“, was eigentlich nur dann erwünscht ist, wenn sich ein Bild beim Aufruf einer Seite (noch) außerhalb des Sichtbereichs befindet.

Das Tag hat auch einen direkten Filter, allerdings muss man den Output z.B. nach „wp-post-image“ durchsuchen, um herauszufinden, ob man es grade mit einem Beitragsbild zu tun hat.

add_filter( 'wp_img_tag_add_loading_attr', function( $value, $image ){
	if ( false !== strpos( $image, 'wp-post-image' ) ){
		return false;
	}
	return true;
}, 10, 2 );

Er ist allerdings gut geeignet, wenn man lazy load ganz abschalten möchte.

add_filter( 'wp_img_tag_add_loading_attr', function( $value, $image ){
	return false;
}, 10, 2 );

Um nur das Beitragsbild „eager“ zu laden, entschied ich mich für den „wp_get_attachment_image_attributes“-Filter. Er ersetzte tatsächlich nur im Beitragsbild den Wert des „loading“-Attributes. Der Wert „eager“ (eifrig) ist ein ebenfalls gültiger Wert für das Attribut „loading“.

function disable_lazy_load_single_featured( $attr, $attachment, $size ) {
	if ( !is_single() ) return $attr;
	$attr['loading'] = 'eager';
	return $attr;
}
add_filter( 'wp_get_attachment_image_attributes', 'disable_lazy_load_single_featured', 10, 3 );

Nicht funktioniert hat hingegen das Snippet mit dem ich versuchte, das Attribut zu entfernen. Im Debug-Output war zwar zu sehen, dass nach dem „unset“ das Attribut tatsächlich weg war. Offenbar suchte eine später in Aktion tretende Instanz nach dem Attribut und fügte es wieder mit dem Wert „lazy“ ein, wenn es nicht bereits vorhanden war, wohingegen beim Überschreiben nicht mehr weiter mit dem Attribut passierte. Das bedeutet allerdings nicht, dass es bei Dir nicht erfüllt was es soll.

function disable_lazy_load_single_featured( $attr, $attachment, $size ) {
	if ( !is_single() ) return $attr;
	unset( $attr['loading'] );
	return $attr;
}
add_filter( 'wp_get_attachment_image_attributes', 'disable_lazy_load_single_featured', 10, 3 );

Bitte das Kommentarfeld nicht für Supportanfragen nutzen; hier kann kein Support angeboten werden. Die Angabe von Name oder E-Mail-Adresse ist optional, ein Spitzname wäre trotzdem nett.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Hinweis: Name und E-Mail-Adresse (beides optional, da alle Kommentare moderiert werden) werden dauerhaft gespeichert. Über dieses Formular kann jeder Zeit die Löschung persönlicher Daten oder Kommentare angefordert werden; die Anfrage wird nicht veröffentlicht und nach der Bearbeitung gelöscht. IP-Adressen, die mit Kommentaren gespeichert werden, werden nach zwei Monaten automatisch gelöscht.

Ihre Nachricht wird möglicherweise zur Spam-Prüfung an OpenAI (USA) weitergeleitet. Weitere Informationen finden Sie in unserer Datenschutzerklärung.