Utilizzo dell’espressione regolare per sostituire i collegamenti esterni in WordPress per scopi SEO
wordpress pad
Diciamo che vogliamo inserire un REL=NOFOLLOW su tutti i link esterni nei tuoi post/pagine wordpress, possiamo aggiungere un filtro per analizzare il contenuto usando la funzione di sostituzione dell’espressione regolare, ad esempio preg_replace_callback.
add_filter('the_content','add_utm_string',999);
function add_utm_string($content){
$content = preg_replace_callback('~hrefs*=s*['"](.*)['"]~i', function ($matches) {
$home_url = parse_url(home_url())['host'];
if (stripos($matches[1], $home_url) === false) {
return 'href="'.$matches[1]. '?utm_source='. $home_url. '" rel=nofollow';
}
return 'href="'.$matches[1].'"';
}, $content);
return $content;
}
Aggiungiamo la funzione di filtro add_utm_string al filtro the_content. Quindi utilizziamo la funzione PHP preg_replace_callback che analizza la stringa HTML dell’attuale post/pagina wordpress e sostituisce il collegamento ipertestuale se è esterno.
Utilizziamo quanto segue per estrarre il nome di dominio corrente, ad esempio helloacm.com, dal tuo sito wordpress.
$home_url = parse_url(home_url())['host'];
Quindi, possiamo escludere i nostri collegamenti. In caso contrario, a tutti i collegamenti esterni verrà aggiunto il tag "NOFOLLOW" e il parametro di query ?utm_source. Ovviamente puoi personalizzare facilmente la creazione dei collegamenti.
La funzione PHP preg_replace_callback accetta il primo parametro: Regular Expression Pattern, il secondo parametro è una funzione di call back quando il pattern è abbinato e il terzo parametro la stringa originale.
Questa è una modifica utile per il tuo modello wordpress (puoi aggiungere la funzione PHP sopra al tuo template del tema functions.php) che migliora la SEO di wordpress.