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);
      }
   }
}

Leave a Comment

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

Utilizzando il sito, accetti l'utilizzo dei cookie da parte nostra. maggiori informazioni

Questo sito utilizza i cookie per fonire la migliore esperienza di navigazione possibile. Continuando a utilizzare questo sito senza modificare le impostazioni dei cookie o clicchi su "Accetta" permetti al loro utilizzo.

Chiudi