Ich habe meine 4.3.1-Installation erfolgreich auf alle https konvertiert. Nach dem Update auf 4.4. Ich habe ein Problem mit dem neuen Attribut srcset
. Während das Attribut src
für Bilder mit https festgelegt wird, lautet das Attribut srcset
http. Dies führt dazu, dass Browser überhaupt kein Bild anzeigen.
Während ich auf eine bessere Lösung warte, möchte ich die Einstellung des Attributs srcset
deaktivieren, sodass alle Bilder nur ein Attribut src
haben. Wie mache ich das?
Hier sind einige Dinge, die Sie versuchen könnten, die Unterstützung für responsive Images in 4.4 zu entfernen:
/**
* Disable responsive image support (test!)
*/
// Clean the up the image from wp_get_attachment_image()
add_filter( 'wp_get_attachment_image_attributes', function( $attr )
{
if( isset( $attr['sizes'] ) )
unset( $attr['sizes'] );
if( isset( $attr['srcset'] ) )
unset( $attr['srcset'] );
return $attr;
}, PHP_INT_MAX );
// Override the calculated image sizes
add_filter( 'wp_calculate_image_sizes', '__return_empty_array', PHP_INT_MAX );
// Override the calculated image sources
add_filter( 'wp_calculate_image_srcset', '__return_empty_array', PHP_INT_MAX );
// Remove the reponsive stuff from the content
remove_filter( 'the_content', 'wp_make_content_images_responsive' );
aber wie von @cybmeta erwähnt, kann das Problem woanders liegen.
srcset
Sie könnten mit dem wp_calculate_image_srcset
-Filter ein wenig debuggen und sogar Folgendes versuchen quick-fix :
add_filter( 'wp_calculate_image_srcset', function( $sources )
{
foreach( $sources as &$source )
{
if( isset( $source['url'] ) )
$source['url'] = set_url_scheme( $source['url'], 'https' );
}
return $sources;
}, PHP_INT_MAX );
um das url Schema auf https
zu setzen. Ein anderer Ansatz wäre es, einen schemenlosen //
zu haben.
Überprüfen Sie den Codex auf weitere set_url_scheme()
-Optionen:
$source['url'] = set_url_scheme( $source['url'], null );
$source['url'] = set_url_scheme( $source['url'], 'relative' );
Aber Sie sollten versuchen, tiefer zu graben und die Ursache zu finden.
Wir könnten früher aus der wp_calculate_image_srcset()
-Funktion aussteigen mit:
add_filter( 'wp_calculate_image_srcset_meta', '__return_empty_array' );
verwenden Sie dann die Filter wp_calculate_image_srcset
oder max_srcset_image_width
.
Ebenfalls gemäß Ticket # 41895 aktualisiert, um ein leeres Array anstelle von false/null zurückzugeben.
Der einfachste und sauberste Weg, dies zu tun, ist einfach dies:
add_filter( 'wp_calculate_image_srcset', '__return_false' );
Um das zu wiederholen, was die meisten anderen Leute sagen, ist srcset eine gute Idee und die Zukunft (jetzt bewährte Methode). Wenn Sie jedoch eine schnelle Lösung benötigen, um Ihre Website funktionsfähig zu halten, erledigt das obige Snippet die Aufgabe, ohne sie zu hacken.
Quelle: WP Kernblog
Der Grund, warum die URLs in Ihren Attributen srcset
fälschlicherweise HTTPS anzeigen, ist höchstwahrscheinlich, dass die URLs für alle Bilder mit dem Wert der Option siteurl in Ihrer Tabelle wp_options erstellt wurden. Wenn Sie Ihr Frontend über HTTPS bedienen, sollten Sie diese Werte auch ändern (über Einstellungen> Allgemein).
Hier ist das entsprechende Ticket für das WordPress-Issue-Tracking-System: https://core.trac.wordpress.org/ticket/34945
Dadurch wird der srcset-Code deaktiviert, indem alle Bilder entfernt werden, die breiter als 1 Pixel sind.
add_filter( 'max_srcset_image_width', create_function( '', 'return 1;' ) );
Auf lange Sicht sollten Sie versuchen, das eigentliche Problem zu beheben. Dies funktioniert jedoch, wenn Sie eine schnelle Lösung benötigen.
Stellen Sie unter Einstellungen/Allgemein sicher, dass Ihre WordPress-Adresse (URL) und Ihre Site-Adresse (URL) auf https://IhreDomain.de eingestellt sind.
Siehe http://wptavern.com/how-to-fix-images-not-loading-in-wordpress-4-4-while-using-ssl
Joe McGill, der dazu beigetragen hat, reaktionsschnelle Bilder in WordPress zu integrieren, antwortete auch im Forenthread und bestätigte, dass Crees Vorschlag korrekt ist: „Wenn Sie HTTPS im Front-End ausführen, sollten Sie die URLs für Ihr Zuhause und Ihre Site ändern URL in Einstellungen> Allgemein, damit sie das HTTPS-Schema verwenden “, sagte er.