Мои скрипты
November 17, 2022
WordPress: скрыть внешние ссылки на JavaScript без сторонних плагинов
Плагин для скрытия внешних ссылок для любого сайта, адаптированный для CMS WordPress.
Это очень простой нативный JavaScript код, который перебирает в DOM все ссылки, подставляет к ним префикс и шифрует через base64.
Описание плагина
Плагин не имеет административного интерфейса и состоит лишь из маленького JavaScript кода и php файла, на который перенаправляются все ссылки.
- полностью нативный JavaScript;
- отдельная php-страница для переадресации пользователя;
- белый список доменов в виде массива;
- обработка страницы полностью на стороне клиента;
- ничего не перезаписывается и не изменяется в структуре сайта;
- шифрование ссылок для визуального эффекта.
Пример кода обработки ссылок
// #######################
// СКРЫТИЕ ВНЕШНИХ ССЫЛОК
// #######################
// получаем все ссылки на странице
var links = document.querySelectorAll('a[href]');
// список исключений (слеш в конце обязательно)
var exclude = [
'https://exclude.name/',
];
// проверяем каждую ссылку в цикле
for(let i = 0; i < links.length; i++){
// проверяем, что текущая ссылка не является доменом сайта
if(links[i].origin !== window.location.origin){
// и вешаем на нее открытие в новой вкладке
links[i].setAttribute('target', '_blank');
// проверяем ссылку на наличие исключений
if(!exclude.includes(links[i].href)){
// проверяем ее дополнительно на наличие rel="follow"
if(links[i].getAttribute('rel') != 'follow'){
// декодируем в base64 и подставляем префикс /go/
links[i].href = '/go/' + btoa(links[i].href);
// или без редиректов через .htaccess
// links[i].href = '/go.php?go=' + btoa(links[i].href);
}
}
}
}Файлы и более детальное описание
Все файлы, детальное описание и инструкция по установке плагина для скрытия внешних ссылок для CMS WordPress у меня в блоге: