Usando a expressão regular para substituir links externos no WordPress para fins de SEO
wordpress-pad
Digamos que queremos colocar um REL=NOFOLLOW em todos os links externos em suas postagens/páginas do wordpress, podemos adicionar um filtro para analisar o conteúdo usando a função de substituição de expressão regular, por exemplo, 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;
}
Adicionamos a função de filtro add_utm_string ao filtro the_content. Em seguida, usamos a função PHP preg_replace_callback que analisa a string HTML da postagem/página atual do wordpress e substitui o hiperlink se for externo.
Usamos o seguinte para extrair o nome de domínio atual, por exemplo , helloacm.com do seu site wordpress.
$home_url = parse_url(home_url())['host'];
Então, podemos excluir nossos próprios links. Caso contrário, todos os links externos serão adicionados à tag "NOFOLLOW" e ao parâmetro de consulta ?utm_source. É claro que você pode personalizar a criação de links facilmente.
A função PHP preg_replace_callback recebe o primeiro parâmetro: Padrão de Expressão Regular, o segundo parâmetro é uma função de retorno de chamada quando o padrão é correspondido e o terceiro parâmetro a string original.
Este é um ajuste útil para o seu template wordpress (você pode adicionar a função PHP acima ao seu template de tema functions.php) que melhora o seu SEO wordpress.