Wanneer een ‘premium’ thema ‘mixed content warnings’ triggert

Blijkt op een zeker moment dat ’n site die ik voor ’n klant beheer en van het Nectar-thema gebruikmaakt een mixed content warning genereert.

Blijkt dat pagina’s op die site – maar dan alleen ‘in’ Internet Explorer – http://html5shim.googlecode.com/svn/trunk/html5.js requesten. (Een bestand dat weleens werd aangeroepen om HTML5-elementen beschikbaar te maken in oudere browsers. Een bestand dat niet eens meer bestaat – een 404 erbovenop!)

Was weer een mooi rondje troubleshooten, zonet.

Toegegeven, alleen als je hele site van https gebruikmaakt, zie je het. In Internet Explorer. (Wel, als je zo’n pagina cachet, hebben andere browsers het ook zitten, maar dat terzijde.)

Hoe los je dat dan snel maar netjes op?

  1. Je gaat dan maar op zoek naar een alternatief script dat net hetzelfde doet maar wél nog gewoon bestaat, zoals https://cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.3/html5shiv.js.
  2. Je registreert dát script – in de functions.php van je child theme, met wp_enqueue_script() én een voldoende lage prio – onder dezelfde handle als het originele. In dit geval is dat 'html5shim'.

In brief, je voegt het volgende toe aan je subthema z’n functions.php:

/**
 * Fix parent theme's lack of 'https' support when including their 'HTML5 shim' JS.
 */
function my_enqueue_scripts() {
	wp_register_script( 'html5shim', 'https://cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.3/html5shiv.js' );
}
add_action( 'wp_enqueue_scripts', 'my_enqueue_scripts', 9 );

Je Narcos-site gaat dan automagically het correcte script requesten. Tussen haakjes: // – in plaats van https:// – had uiteraard evenzeer gekund.

Ter info, de boosdoener, die vind je op regel 124 van tesla_framework/core/tt_enqueue.php:

wp_enqueue_script('html5shim', "http://html5shim.googlecode.com/svn/trunk/html5.js");

Da’s juist: http, hardcoded en al. En niet de eerste keer dat zo’n fratsen zich voordoen. Je vraagt je weleens af waarom ik zo graag met de gratis Automattic-thema’s werk?