Мои скрипты
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 у меня в блоге: