Добавляем автоматическую ссылку при копировании текста с вашего сайта WordPress

Знаете ли вы о том, что копирование и вставка составляет 82% от всех действий, связанных с распространением контента в сети – примерно в 4.5 раза больше, чем использование социальных кнопок?

Именно такая тенденция была выявлена рекламным гигантом 33across/Tynt при помощи исследования, выполненного в конце прошлого года.

Возможно, вам покажется это интересным. Однако как использовать эту информацию на практике? Как применить это к своему сайту на WordPress? Читайте дальше, и вы узнаете!

link_back_chains

Добавляем ссылку на исходный текст при копировании/вставке материалов с вашего сайта

Сталкивались ли вы когда-либо с такой ситуацией, что при копировании части текста с веб-сайта и вставки его в почтовое сообщение, в файл, на форум или на свой собственный сайт, внезапно в самом конце текста появлялась обратная ссылка, указывающая на источник?

Довольно интересная возможно, верно? И, как вы могли подумать, достаточно продуктивная в плане SEO. Отлично, код, представленный ниже, поможет вам это сделать для своего собственного сайта на WordPress.

Если вы добавите этот код «как есть», без каких-либо изменений, то он отобразит стилизованную обратную ссылку на материал. Вы можете менять текст «Read More» на любой другой.

Вставьте следующий код в файл functions.php вашей темы:

function add_copyright_text() {
    if (is_single()) { ?>

<script type='text/javascript'>
function addLink() {
    if (
window.getSelection().containsNode(
document.getElementsByClassName('entry-content')[0], true)) {
    var body_element = document.getElementsByTagName('body')[0];
    var selection;
    selection = window.getSelection();
    var oldselection = selection
    var pagelink = "<br /><br /> Read more: <?php the_title(); ?> <a href='<?php echo get_permalink(get_the_ID()); ?>'><?php echo get_permalink(get_the_ID()); ?></a>"; //Change this if you like
    var copy_text = selection + pagelink;
    var new_div = document.createElement('div');
    new_div.style.left='-99999px';
    new_div.style.position='absolute';

    body_element.appendChild(new_div );
    new_div.innerHTML = copy_text ;
    selection.selectAllChildren(new_div );
    window.setTimeout(function() {
        body_element.removeChild(new_div );
    },0);
}
}


document.oncopy = addLink;
</script>

<?php
}
}

add_action( 'wp_head', 'add_copyright_text');

Если вы используете различные сервисы для сокращения URL, замените get_permalink на wp_get_shortlink.

Источник: wpmu.org

Блог про WordPress
Комментарии: 37
  1. Егор

    Полезная функция, спасибо за информацию. Ссылка «read more» будет действительно смотреться незаметно и будет более функциональна, чем название сайта или его адрес. К тому же такой метод защить намного более лучше полной блокировки выделения текста или отключения правой кнопки мыши. Последние методы, по-моему, могут отпугнуть пользователя и вызвать недоверие.

    1. Дмитрий (автор)

      Правда, в данном случае, если использовать код из примера, то после Read More будет стоять ссылка на сайт. Можно, конечно, реализовать это по-своему, чтобы ссылки на сайт не было видно.
      Блокировка текста — это полная ерунда. Нет такой блокировки, которую нельзя было бы обойти. Даже если напрямую через HTML текст не выдрать и каждый символ задан в коде виде escape-последовательностей, все равно можно написать программу расшифровки. Это, действительно, только отпугивает пользователей.

  2. Волшебник

    Что-то я не вполне понял каким образом всё это работает? Скажем если я выделю и скопирую в браузере кусочек статьи, при вставке будет ссылка? Или как?

    Зато недавно натолкнулся на интересный способ защиты, к примеру: lyricstranslate.com/ru/adeste-fideles-venid-fieles.html При попытке скопировать любой текст со страниц этого сайта, и вставить из буфера, вставляется адрес главной страницы сайта, а не текст. Но это глупо. Т.к. сайт то о переводах, и для пользователей неудобен получается, раз они не могут скопировать себе перевод. Следовательно они вместо профита получат отток пользователей на сайты, где копировать можно.

    И вообще я не люблю такие сайты, где нельзя скопировать что-то — это снижает юзабилити и может доставить пользователям неудобство. Т.к. часто просто хочется например скопировать текст, закинуть его в сотовый и почитать в свободное время.

    1. Дмитрий (автор)

      Да, вы правильно поняли.
      Я сам не слишком одобряю такой подход, но, возможно, другим людям будет это удобно. Сам всегда ухожу с сайтов, где не могу получить контент, который мне требуется — всегда есть сайты-аналоги.

  3. Public

    Класс, спасибо большоае. Гениально простое и действенное решение.
    На счет нельзя скапировать, как писали выше. Тут все таки не все так. Скопировать же можно, без проблем. Только вместе с этим попадет еще и ссылка на первоисточник.

  4. Siarzhuk.ru

    Ничего не понимаю. Пробую на двух разных WP-сайтах — не получается, копируется чистый текст без ссылки на первоисточник.

    1. Дмитрий (автор)

      Возможно, что у вас не подключен jQuery (или неверно подключен)

  5. Siarzhuk.ru

    wp-includes/js/jquery/jquery.js?ver=1.8.3
    Вроде подключен.
    Решил уже по-другому — подключил плагин «Read More, Copy Link». Удобно и быстро.

  6. Игорь

    Все перепробовал — не работает, wp-includes/js/jquery/jquery.js?ver=1.10.2 установлен.

  7. Егор

    Вставил код в файл функций шаблона, но ничего произошло… ровным счётом ничего… Подскажите, может есть другие варианты указания коппирайта?

    1. Дмитрий (автор)

      Попробуйте плагин http://wordpress.org/plugins/wp-content-copy-protection/

      У него много вариантов защиты контента от копирования. Отключение правого клика, выделения и т.д.

  8. Егор

    Благодарю, сейчас попробую.

  9. Алекс

    А как вставить тот же текст, но не в конец а в середину скопированного текста?

  10. Олег

    Тоже ничего не получилось. Ни с этим кодом, ни с плагинами.
    Вроде и jQuery есть.. Не понимаю, что не так?

    1. Дмитрий (автор)

      Странно, что даже плагинами не получилось сделать. Укажите подробности, какая версия у вас стоит WP, какой плагин вы пробовали.

  11. Лидия

    Спасибо, сработало!

  12. Виктор

    Отлично ! получилось с первого дубля!

  13. Сергей

    Если использувать плагины, то ухудшается юзабилити, сам пользовался а когда проводили оптимизацию сайта сказали мне его отключить, лучший вариант, это перед добавлением статьи на сайт забить ее на яндекс типа этоваш текст а потом уже публиковать на сайте. Тогда хоть и скопируют у вас статью, яшка будет знать, что хозяин статьи вы.

    1. Дмитрий (автор)

      Можно и так, все верно. Но будут ли учитываться ваши авторские права Яндексом, это под вопросом.

      1. Игорь

        Я так с каждой новой статьей поступаю перед её опубликованием в Яндекс «Оригинальные тексты» добавляю. А ещё и Гугл+, там тоже есть раздел для добавления собственных статей.

  14. Волшебник

    «Оригинальные тексты» говорят, мало помогают.

  15. Дмитрий (автор)

    Да, я тоже читал, что толку от них мало. Только больше времени потратишь.

  16. Волшебник

    Да и «авторство гугл» отменили, так что и в гугл+ вроде как толку нет.

  17. Игорь

    Доброго времени суток Вам!
    За код спасибо, но хотелось дополнить кое какие нюансы, люди разные бывают. Ну, да ладно, буду краток. Вставил этот код к себе (function.php) и ахнул… Белый экран, сперва не понял, но разобрался быстро. Правильная вставка кодов в php такова:
    закрывающие тэги за пределами.
    Или #2

    Многие разработчики вообще не закрывают тэг ?>, в php это можно.

    Я не имею ввиду, что код взятый мной на вашем сайте, вызвал у меня ошибку — белый экран и не жалуюсь. Вспомним вместе некоторые правила. ))))
    Благодарю за код!

    1. Дмитрий (автор)

      Спасибо за уточнение. Просто я не пишу эти правила вставки, подразумевая, что пользователи знают, как работать с кодом. В каждой статье, где затрагивается functions.php, просто нереально делать такое замечание.

  18. DARK-ADMIN

    Уберите вызов PHP из кода

  19. Егор

    Спасибо большое! Все работает! А то немного было неудобно или не замечал иногда этого, само по себе не совсем хорошо получается с такими ссылками.

  20. Константин

    Не работает.

    1. Дмитрий (автор)

      Возможно, у вас класс контента записи отличается от entry-content.

      В 8 строке кода меняете класс контента на тот, который используется в вашей теме. Узнать класс, в котором находится контент вашей записи, можно с помощью, к примеру, инструмента Firebug.

  21. Светлана

    Спасибо.
    Скрипт работает.
    А существуют ли подобные плагины, т.к. многим не удобно код править и могут возникнуть проблемы и вопросы с этим?

    1. Дмитрий (автор)

      Есть несколько подобных плагинов, но они не слишком популярны:

      https://wordpress.org/plugins/copy-link/
      https://wordpress.org/plugins/add-link-to-copied-text/
      https://wordpress.org/plugins/append-link-on-copy/

  22. Белкин

    Спасибо все работает)))

  23. Шарик

    Светлана, плагины создают дополнительную нагрузку на сайт. Лучше пользоваться кодом приведенным в данной статье. Все просто и без лишней нагрузки будет работать.

  24. Владимир

    Скрипт рабочий. Но, весь текст сливается в один абзац, что не хорошо. А если текст большой, то получается просто ппц как коряво смотреться. Можно ли как-то сохранять абзацы в тексте?

    1. Дмитрий (автор)

      Не видел такой реализации. Всегда копируется обычно одним абзацем с целью безопасности, чтобы не тянуть за собой кучу стилей и лишних тегов.

  25. Pavel

    Спасибо!!!

  26. Рахим

    Добрый день!
    А существуют ли подобные плагины для сайтов созданных на Bootstrap е?

Добавить комментарий для Дмитрий Алёшин Отменить ответ

Получать новые комментарии по электронной почте.