wordpress-блокнот
Допустим, мы хотим поместить REL=NOFOLLOW на все внешние ссылки в ваших сообщениях/страницах WordPress, мы можем добавить фильтр для анализа содержимого с помощью функции замены регулярного выражения, например, 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;
}
Мы добавляем функцию фильтра add_utm_string в фильтр the_content. Затем мы используем функцию PHP preg_replace_callback, которая анализирует строку HTML текущей записи/страницы WordPress и заменяет гиперссылку, если она является внешней.
Мы используем следующее, чтобы извлечь текущее доменное имя, например helloacm.com, из вашего сайта WordPress.
$home_url = parse_url(home_url())['host'];
Затем мы можем исключить наши собственные ссылки. В противном случае ко всем внешним ссылкам будет добавлен тег «NOFOLLOW» и параметр запроса ?utm_source. Вы, конечно, можете легко настроить построение ссылок.
Функция PHP preg_replace_callback принимает первый параметр: шаблон регулярного выражения, второй параметр — это функция обратного вызова при совпадении шаблона, а третий параметр — исходная строка.
Это полезная настройка для вашего шаблона wordpress (вы можете добавить указанную выше функцию PHP в файл functions.php шаблона вашей темы), который улучшает SEO-оптимизацию WordPress.