Disabilitare CDN immagini di wordpress.com, plugin jetpack, per problemi di condivisione open graph

Quando un sito utilizza una rete per la consegna di contenuti (CDN) o semplicemente una risorsa esterna, con il plugin jetpack incorre in una problematica particolare. Il plugin per il momento sembra non essere in grado di rilevare questa cosa e “forza” i dati dei meta open graph ad utilizzare la propria CDN anche se la funzionalit√† √® disattivata. Qualsiasi tipo di espediente indicato dall’assistenza dei plugin √® completamente vano ma comunque c’√® un modo per “censurare” la CDN di wordpress che vi spiegher√≤ di seguito.

Se quando provate a condividere su un social network come facebook un link ad un vostro articolo e l’immagine non vi appare o vedete un riquadro nero, potete cercare di capire se i meta all’interno del codice della pagina sono corretti. Questo pu√≤ essere fatto con la combinazione di tasti CTRL + U oppure semplicemente visualizzando la modalit√† RAW del debugger di facebook. Qualora vi appaia una situazione del genere saprete che state incorrendo nel problema per il quale vi dar√≤ la soluzione pi√Ļ avanti nell’articolo.

Come potete ben vedere, il plugin jetpack forza, attualmente anche con photon disabilitato, l’indirizzo della CDN di wordpress.com. Questo √® un problema perch√® la CDN non √® in grado con alcune risorse esterne di gestire determinate risorse remote. Infatti, se provate ad accedere all’indirizzo dell’immagine direttamente da browser, riceverete la seguente risposta.

Che √® la stessa identica risposta che riceve il social network quando cerca l’immagine da includere. La soluzione in realt√† √® molto semplice, √® sufficiente utilizzare il codice seguente per fare in modo che in fase di rendering della pagina, il testo contenente l’indirizzo della CDN sia sostituito con niente.

Prima di procedere a fare qualsiasi cosa, fate un bel backup di tutto quanto. Il codice non dovrebbe essere pericoloso ma non mi assumo nessuna responsabilità. Ricordate che prima di procedere, è imperativo che sappiate leggere il codice che abbiate dimestichezza con WordPress e che sappiate bene quello che state facendo.

Io consiglio di mettere questo codice nella function di un tema figlio oppure di utilizzare un plugin apposito per inserire codici nella function. Infatti, se inseriamo direttamente nella function del nostro tema questo codice, sicuramente quando quest’ultimo si aggiorner√† perderemo le modifiche. Dopo aver salvato il file, dopo aver cancellatola cache, riesaminando il codice sorgente della pagina vedrete quanto segue.

Finalmente, avremo l’indirizzo corretto della nostra immagine e noterete che condividendo il link su Facebook, adesso l’immagine risulter√† perfettamente visibile. Adesso vi spiego come funziona questo codice molto semplice. Ho utilizzato la funzione ob_start() per scandire tutto il testo renderizzato della pagina dell’articolo, poi tramite un’espressione regolare ho disposto che la stringa che indica la CDN di wordpress.com venga sostituita da niente.

E’ stata utilizzata l’espressione regolare perch√® il sottodominio della CDN (i01) pu√≤ essere sostituito da qualsiasi numero in quanto si tratta di una CDN distribuita e quindi pu√≤ avere anche un indirizzo diverso. Essendo una sostituzione tipo “censura”, qualora doveste scrivere la stringa in un articolo, questa non verr√† renderizzata durante la visualizzazione della pagina.

Per tale motivo questo √® un ottimo sistema (anche se non molto efficiente) per censurare determinate parole all’interno degli articoli. Si spera che questo bug venga ben presto risolto e che questo codice diventi superfluo ma nel frattempo a me funziona solo cos√¨, l’alternativa √® disinstallare il plugin jetpack.

Rispondi

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