Скрипт читать далее. Трюки с ссылкой “читать далее”

Плагин позволяющий скрывать часть текста, если он превышает заданную длину. Добавляется ссылка, как правило в виде кнопки "Подробнее" - по клику отображается скрытый текст.

Совместим с версиями jQuery выше 1.7.0

JS

Простой вызов плагина:

$("article").readmore();

Можно вызвать с дополнительными опциями:

$("article").readmore({ speed: 75, maxHeight: 500 });

Опции

  • speed : 100 (в миллисекундах)
  • maxHeight : 200 (в пикселях)
  • heightMargin : 16 (в пикселях, позволяет избежать ломания блоков, которые лишь немного больше заданной высоты - maxHeight)
  • moreLink : "Подробнее"
  • lessLink : "Скрыть"
  • embedCSS : true (вставляет динамический CSS стили, установите false, если все стили вы будете подключаать сами в своём файле стилей)
  • sectionCSS : "display: block; width: 100%;" (устанавливает стиль блоков)
  • startOpen : false (по дефолту блок скрыт, при параметре true - текст будет показан полностью, но с возможностью скрыть)
  • expandedClass : "readmore-js-expanded" (класс добавляемый к развернутому блоку)
  • collapsedClass : "readmore-js-collapsed" (класс добавляемый к свернутому блоку)
  • beforeToggle : function() {} (функция вызываемая после нажатия на кнопку "Подробнее" или "Скрыть", но до того, как блок свернется или развернется)
  • afterToggle : function() {} (функция вызываемая после того, как блок развернется или свернется)

Если у элемента задана максимальная высота в CSS стилях, то плагин будет использовать именно это значение, а не значение опции maxHeight

Обратный вызов:

Функции обратного вызова, beforeToggle() и afterToggle() получают те же самые аргументы: trigger , element и more .

  • trigger : кнопки "Подробнее" или "Скрыть"
  • element : блок, который в настоящее время сворачивается или разворачивается
  • more : boolean, true - означает, что блок разворачивается

Пример обратного вызова.
Вот пример использования функции afterToggle , для прокрутки к верхней части блока, когда нажата кнопка "Скрыть ":

$("article").readmore({ afterToggle: function(trigger, element, more) { if(! more) { // кнопка "Скрыть" была нажата $("html, body").animate({ scrollTop: element.offset().top },{ duration: 100 }); } } });

Отключить функционал плагина можно так:

$("article").readmore("destroy");

Или же вы можете указать элемент, на котором плагин не должен работать:

$("article:first").readmore("destroy");

CSS

По умолчанию плагин вставляет следующий CSS код на страницу:

Readmore-js-toggle, .readmore-js-section { display: block; width: 100%; } .readmore-js-section { overflow: hidden; }

С помощью опции плагина можно изменить первое правило:

$("article").readmore({ sectionCSS: "display: inline-block; width: 50%;" });

Если вы хотите использовать свой файл стилей, то в настройках плагина укажите false :

$("article").readmore({ embedCSS: false });

Here"s how it is: Earth got used up, so we terraformed a whole new galaxy of Earths, some rich and flush with the new technologies, some not so much. Central Planets, them was formed the Alliance, waged war to bring everyone under their rule; a few idiots tried to fight it, among them myself. I"m Malcolm Reynolds, captain of Serenity. Got a good crew: fighters, pilot, mechanic. We even picked up a preacher, and a bona fide companion. There"s a doctor, too, took his genius sister out of some Alliance camp, so they"re keeping a low profile. You got a job, we can do it, don"t much care what it is.

I am Duncan Macleod, born 400 years ago in the Highlands of Scotland. I am Immortal, and I am not alone. For centuries, we have waited for the time of the Gathering when the stroke of a sword and the fall of a head will release the power of the Quickening. In the end, there can be only one.

From this distant vantage point, the Earth might not seem of any particular interest. But for us, it"s different. Consider again that dot. That"s here. That"s home. That"s us. On it everyone you love, everyone you know, everyone you ever heard of, every human being who ever was, lived out their lives. The aggregate of our joy and suffering, thousands of confident religions, ideologies, and economic doctrines, every hunter and forager, every hero and coward, every creator and destroyer of civilization, every king and peasant, every young couple in love, every mother and father, hopeful child, inventor and explorer, every teacher of morals, every corrupt politician, every "superstar," every "supreme leader," every saint and sinner in the history of our species lived there – on a mote of dust suspended in a sunbeam.

Space, the final frontier. These are the voyages of the starship Enterprise. Its five year mission: to explore strange new worlds, to seek out new life and new civilizations, to boldly go where no man has gone before!

Добрый день!

Начнем с самого начала на тот случай, если кто-то вообще ничего не знает о more.

Я не был на море.

– Ладно, не заливай, ни разу не был на море!

– Не довелось, не был…

– Уже постучались на небеса, накачались текиллой, буквально проводили себя в последний путь, а ты на море-то не побывал?!

– Не успел, не вышло…

– Не знал, что на небесах никуда без этого?

к/ф “Достучаться до небес”

Как добавить more

Так вот, какой фрагмент текста отображать в анонсе задается с помощью тега more . Этот тег разделяет статью на две части: вступительную (анонс) и продолжение.

В редакторе WordPress тег more можно вставить с помощью кнопки в панели инструментов.

1. Визуальный режим редактора:

2. Текстовый режим редактора:

В текстовом режиме, так же можно вручную разделить запись: просто напишите

А теперь важная информация, которую знают далеко не все!

Так вот, есть элементарный способ задавать каждой ссылке после анонса свой уникальный текст!

Сделать это можно, просто написав, нужный текст внутри конструкции с more. Вот так:

Спросите а зачем так делать? Еще прописывать каждый раз текст.

Честно говоря, сам такой =) Уже 84 статьи опубликовал, и только “расчехлился” по этому поводу.

Как изменить текст?

1. Первый – самый простой способ – это добавить ваш текст (обычно в index.php) в функцию the_content

2. Второй способ с использованием хука the_content_more_link . Просто добавьте следующий код в и задайте желаемый текст ссылки.

function my_more_link($more_link, $more_link_text) { return str_replace($more_link_text, "Продолжить чтение...", $more_link); } add_filter("the_content_more_link", "my_more_link", 10, 2);

Этот способ удобен тем, что вам не нужно искать по файлам шаблона, где именно у вас используется the_content (это не обязательно в index.php, может быть и content.php и что угодно.) Здесь вы работаете только в файле functions.php.

3. В третьем пункте просто сохраню для истории способ с использованием произвольного поля WordPress.

ID, "custom_more_text", true); if(!$custom_more) { $custom_more = "Продолжить чтение статьи »"; } the_content($custom_more); ?>

Вписывание текста непосредственно в , конечно же проще и понятней.

Здесь просто откорректируйте вызов функции the_content одним из двух способов.

Как убрать #more из ссылки

В коде этот якорь устанавливается таким вот способом: