Używanie wyrażenia regularnego do zastępowania linków zewnętrznych w WordPress do celów SEO
wordpress-pad
Powiedzmy, że chcemy umieścić REL=NOFOLLOW na wszystkich zewnętrznych linkach w Twoich postach/stronach wordpress, możemy dodać filtr, aby przeanalizować treść za pomocą funkcji zamiany wyrażenia regularnego, np. 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;
}
Do filtru the_content dodajemy funkcję filtra add_utm_string. Następnie używamy funkcji PHP preg_replace_callback, która analizuje ciąg HTML bieżącego posta/strony wordpress i zastępuje hiperłącze, jeśli jest zewnętrzne.
Używamy następujących, aby wyodrębnić aktualną nazwę domeny, np . helloacm.com z Twojej witryny WordPress.
$home_url = parse_url(home_url())['host'];
Następnie możemy wykluczyć własne linki. W przeciwnym razie do wszystkich linków zewnętrznych zostanie dodany tag „NOFOLLOW" oraz parametr zapytania ?utm_source. Oczywiście możesz łatwo dostosować budowanie linków.
Funkcja preg_replace_callback PHP przyjmuje pierwszy parametr: wzorzec wyrażenia regularnego, drugi parametr to funkcja zwrotna, gdy wzorzec jest dopasowany, a trzeci parametr to oryginalny ciąg znaków.
Jest to przydatna poprawka dla szablonu wordpress (możesz dodać powyższą funkcję PHP do szablonu functions.php szablonu), która poprawia SEO WordPress.