Risolvere problemi di richieste cross-origin non permesse su WordPress

Vi è mai capitato che usando WPML in modalità “una lingua per dominio” non si vedessero i font in tutte le lingue? Questo può capitare se il tema WordPress richiede stili e font usando come URL di base il sito “principale”.

Una soluzione veloce e sporca al problema consiste nel modificare l’.htaccess aggiungendo un header:

Header set Access-Control-Allow-Origin "*"

Ma come comportarsi se l’.htaccess non è disponibile o se non è abilitato il modulo degli headers su Apache? Beh, si trasformano gli URL assoluti che compaiono nell’head generato da WordPress in relativi. Ispirandomi ad uno snippet che trasforma tutti gli URL http in https, ho aggiunto questo pezzo di codice al functions.php del tema (se usate un tema commerciale, ricordatevi sempre di fare questa modifica su un tema figlio per non perderla in futuro):

add_action('wp_print_styles', 'enqueueStylesFix', 100);
function enqueueStylesFix() {
if (!is_admin()) {
global $wp_styles;
foreach ((array) $wp_styles->registered as $script) {
$script->src = str_replace(home_url(), '', $script->src);
}
}
}

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

%d blogger hanno fatto clic su Mi Piace per questo: