Come si può inserire automaticamente l’attributo nofollow (UGC), sponsored, noopener, noreferrer, sui link che aprono in una nuova scheda target=”_blank”?
Nel mio articolo di oggi voglio aiutare chi ha la necessità di aggiungere su tutti i link <a href=”” target=”_blank”>Link in Uscita</a> che aprono la risorsa in una nuova scheda, l’attributo rel=”nofollow, noopener, noreferrer” o i nuovi UGC o sponsored.
Se ti sei trovato di fronte questo tipo di problema e non vuoi operare su ogni singolo link modificando in modalità “testo” il codice, puoi inserire una piccola porzione di codice nel file functions.php del tema in uso.
Perchè mai avresti bisogno di una soluzione di questo tipo? probabilmente perchè:
- Il tuo tema non ti permette di gestire gli attributi rel nei link (perchè usi un compositore visuale come Wp Bakery o Visual Composer)
- Perchè non vuoi dare il dofollow ai link in uscita dalla tua risorsa
- Perchè vuoi applicare l’attributo noopener ai target blank per una maggiore sicurezza
- Perchè vuoi applicare l’attributo ugc o sponsored sugli url presenti nel corpo del testo
Il Trick in questione applicherà, su tutti i link che hanno l’attributo target=”_blank”, il rel=”nofollow”. (puoi modificare la porzione di codice aggiungendo o cambiando nofollow con ugc, inserire con una , e spazio anche altri attributi come precedentemente scritto noopener, noreferrer etc…)
Di seguito la porzione di codice da inserire alla fine del file functions.php, eccolo:
function add_nofollow_content($content) { $content = preg_replace_callback('/]*href=["|\']([^"|\']*)["|\'][^>]*>([^<]*)<\/a>/i', function($m) { if (strpos($m[1], "YOUR_DOMAIN_ADDRESS") === false) return '<a href="'.$m[1].'" rel="nofollow" target="_blank">'.$m[2].'</a>'; else return '<a href="'.$m[1].'" target="_blank">'.$m[2].'</a>'; }, $content); return $content; } add_filter('the_content', 'add_nofollow_content');
Cambia YOUR_DOMAIN_ADDRESS con l’URL del tuo sito web o utilizza home_url()
Ricordati sempre di effettuare un backup dei file e del database, questo ti garantirà il ripristino del tuo sito web qualsiasi cosa succeda dopo l’iniezione di codice.
Hai provato la soluzione? hai risolto?
Spero di si… a presto!
Marco
Ciao, ho inserito lo snippet di codice nel functions del mio tema ma una volta ricaricato il sito mi da errore 500. Potresti aiutarmi? grazie
Luca Carchesio
Ciao Marco,
l’errore 500 è un errore generico del server… è molto probabile che tu o non abbia inserito correttamente il codice nel functions.php del tema omettendo qualche apice o punto oppure il codice in uso genera un errore a causa di un incompatibilità con il tuo tema o con una funzione presente nel functions.
Per sapere esattamente cosa manda in error 500 il sito bisognerebbe visualizzare i log del server e attivare il debug WordPress sul wp-config.php.
Rimango in attesa di un tuo commento dove “posterai” l’error log così che io possa aiutarti a capire cosa non va.
Grazie per il commento!
Marco
Grazie mille per la disponibilità ma come per magia, dopo aver refreshato la pagina, è tornato tutto operativo… non so come mai ma ora funziona tutto.
Ho un nuovo problema però… lo script applica il rel nofollow a tutte le pagine tranne che per le home page, come mai secondo te?
Luca Carchesio
Sono contento per te!
Per il secondo problema è probabile che lo script non riesca a lavorare su pagine che utilizzano un compositore visuale… è corretto? stai utilizzando un compositore visuale?
L’Alternativa a questo script è utilizzare Javascript o JQuery… spero di averti aiutato!