Вы могли заметить, как некоторые популярные сайты добавляют ссылку "Читать далее..." к любому тексту, который вы скопировали. Это отличный способ получить новых пользователей. Часто люди копируют и вставляют тексты с сайта в электронные письма. Некоторые используют это для сохранения информации на будущее, тогда как другие просто делятся со своими друзьями, семьей, коллегами.
В этой статье мы покажем, как можно легко добавить ссылку "Читать далее" в любой текст, который копируется с вашего WordPress сайта, для получения дополнительного трафика.
Первое, что вам нужно сделать — скопировать следующий код в файл functions.php вашей темы:
function add_copyright_text() { if (is_single() || is_page() || is_search() || is_archive()) { ?> <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 /> Читать далее на WordPresso.org: <?php the_title(); ?> <a href='<?php echo wp_get_shortlink(get_the_ID()); ?>'><?php echo wp_get_shortlink(get_the_ID()); ?></a>"; //Измените на свое усмотрение 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');
Теперь, когда кто-то зайдет на ваш сайт и попробует скопировать ваш конент, ссылка будет включена вместе с текстом. Не забудьте сменить текст копирайта и добавить туда название вашего сайта.
Комментарии к записи: 17
У меня почему-то не работает. Подскажите, пожалуйста, чем может быть проблема?
Проблема может быть в скобках открытия/закрытия кода php, посмотрите внимательно, в какой участок кода вы вставляете приведенный сниппет, чтобы не нарушить последовательность включений php
Вставляю в самом конце functions.php в скобках
WordPresso, приведите пожалуйста пример своего файла function.php ибо у меня тоже не работает функция.
Код в нашем файле functions.php полностью соответствует тому, что приведен в этом уроке. Этот трюк срабатывает только при попытке копирования контента из самой записи, а не с главной страницы.
у меня тоже не работает. Вставляю сразу же после последнего текста в файле function.php до символа ?>
. если после него, то сайт перестает грузиться
По-перше, у сніпеті не вистачає теґів через, що просто скопіювавши його у файл покладемо сайт «на лопатки».
По-друге, у мене теж не працює.
П.С. Я не програміст.
Тоже не работает…
Проверил только что на теме Twenty Eleven — все работает. Добавил код в конец файла functions.php. Вот пример:
Попробуйте скопировать оттуда текст записи.
Для мультисайта не годится. Нужен плагин, чтобы активировать его на всю
сеть, не зависимо от тем, которые в ней используются. Есть ли такой
плагин? Прошу знающих дать ссылку на него.
Есть более простое решение, достаточно добавить небольшой скрипт перед закрывающимся тегом и пользователь будет копировать текст с ссылкой на страницу.
не працює. тема Clear Line
Для того, чтобы работало везде, исправьте первые две строчки сниппета на вот такое:
function add_copyright_text() {
if (is_single() || is_page() || is_search() || is_archive()) { ?>
Автор забил! За год непошевилился чтоб исправить или пост снести за ненадобностью!
поломался сайт( снес код
У кого есть рабочий код, поделитесь плиз.
Ам да все норм с кодом, просто не во всех темах есть контейнер entry-content
если у вас его нет то замените на существующий класс который оборачивает защищенный контент. Например wrapper…
но есть проблема, как я понял общая для таких решений. Скопированный код теряет форматирование, например абзацы и прочее, что есть не хорошо. Без данного ухищрения форматирование сохраняется нормально. Как думаете в чем может быть проблема?