           

 # Corriger les images brisées causées par des erreurs de contenu mixte sur WordPress

7 janvier 2016

 WordPress a introduit les images réactives dans la version 4.4, mais il a également introduit un [bogue](https://core.trac.wordpress.org/ticket/25449) qui fait qu'elles ne se chargent pas correctement sur les sites cryptés en https.

Le bogue charge l'image principale via https, mais toute la partie responsive srcset est chargée en http. Votre navigateur bloque alors le chargement de l'image en raison d'un "contenu mixte", une fonction de sécurité de votre navigateur.

   ![Un srcset non sécurisé dans l'élément img de WordPress](/sites/default/files/styles/scale_0720/public/media/image/2019/code-mixed-content-srcset.png.webp?itok=yNiKKYfL)  

  code d'image réactive - remarquez que l'attribut "src" est https:// alors que les valeurs "srcset" sont http://  Voici comment le code précédent est rendu dans une page HTTPS (c'est-à-dire l'image brisée) :

   ![comment apparaîtrait une image brisée dans un scénario de contenu mixte](/sites/default/files/styles/scale_0480/public/media/image/2023/broken-image-fr0.png.webp?itok=EcS0atwy)  

Voici comment résoudre ce problème si votre site SSL affiche soudainement des images brisées :

Allez dans **Réglages &gt; Général** dans l'interface d'administration de WordPress

   ![Tableau de bord de WordPress, section Réglages Généraux, Adresse web de WordPress](/sites/default/files/styles/scale_0480/public/media/image/2025/wordpress-reglages-general-adresse.png.webp?itok=f7fO_amu)  

Modifiez les valeurs de Site Address et WordPress Address pour utiliser **https://** au lieu de **http://**.

Si ces champs sont grisés, vous pouvez modifier votre fichier wp-config.php pour changer les valeurs des constantes **WP\_SITEURL** et **WP\_HOME** afin d'utiliser **https://**.

Cela ne résoudra peut-être pas le problème de manière universelle - jusqu'à ce que le bogue soit corrigé dans WordPress, vous pouvez utiliser l'une des deux approches suivantes :

1. Installer le plugin [SSL Insecure Content Fixer](https://wordpress.org/plugins/ssl-insecure-content-fixer/) et le configurer en mode simple. Cela devrait convertir tous les URLS de contenu local pour utiliser https://.
2. Insérez le code suivant dans votre fichier functions.php dans le dossier de votre thème, ou dans un plugin personnalisé :

```php
/**
 * Forcer les URLs dans les attributs srcset dans le schéma HTTPS.
 *
 * Ceci est particulièrement utile lorsque vous utilisez un frontend SSL flexible comme Cloudflare.
 *
 * @param array $sources L'ensemble des sources originales.
 * @return array modification de l'ensemble des sources avec https appliqué.
 */
function ssl_srcset( $sources ) {
	foreach ( $sources as &$source ) {
		$source['url'] = set_url_scheme( $source['url'], 'https' ) ;
	}
	return $sources ;
}
add_filter('wp_calculate_image_srcset', 'ssl_srcset' ) ;
```

Merci à [Jeff Chandler de WPTavern](http://wptavern.com/how-to-fix-images-not-loading-in-wordpress-4-4-while-using-ssl) pour la correction ci-dessus.



 

Étiquette

[WordPress](/fr/etiquette/wordpress)

[images réactives](/fr/etiquette/images-reactives)

[SSL](/fr/etiquette/ssl)

[HTTPS](/fr/etiquette/https)