Как вывести ссылку «Читать далее» в любом месте записи

Пример кода, позволяющего выводить в любом месте записи ссылку «Читать далее». Ссылка выводится только если в содержимом записи присутствует тег more, и может иметь индивидуальное размещение и оформление.
👍 Научим бесплатно правильно создавать сайты на WordPress. Подробнее →

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

Обычно ссылка «Читать далее» формируется автоматически функцией the_content, и отображается, как я уже писал, в области разделения текста специальным тегом [code inline=”yes”]. Но иногда дизайн блога требует вывода этой ссылки в другом месте – справа, слева, под текстом, вообще в отдельной панели.

Казалось бы, сделать это легко, достаточно сформировать ссылку вида [code inline=”yes”]http://ваш-блог/пост#more-ID_поста. Однако тут нужно учитывать, что в некоторых постах нет тега more, и поэтому ссылка такого вида будет неточной, да и ненужной. Тут нужен другой подход – предварительно проверять, присутствует ли тег more в посте или нет.

Для начала нужно избавиться от стандартной ссылки «Читать далее». Сделать это можно с помощью фильтра, добавленного в файл functions.php:

function remove_more_link() { return ''; }
add_filter('the_content_more_link', 'remove_more_link');

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

post_content, '')) { ?><a href="#more-" class="more-link">Читать далее</a>

Этот код использует две функции:

  • the_permalink – возвращает прямую ссылку на пост
  • the_ID – возвращает ID поста

Следует учитывать, что код нужно вставлять в цикл вывода записей, иначе он не сможет определить ID и ссылку поста. Нас интересует размещение подобной ссылки в записях на главной странице (или в различных архивах). Значит вставлять этот код нужно внутри цикла

if ( have_posts() ) : while ( have_posts() )
...
endwhile

Код ищет в содержимом поста специальный тег more, и если он есть, то выводит ссылку вида [code inline=”yes”]http://ваш-блог/пост#more-ID_поста в нужном вам месте. Вы можете придать ссылке индивидуальное оформление, используя в css класс more-link.

Создай свой первый сайт на WordPress

tiaurus

Автор n-wp.ru — блога о WordPress для новичков.

Оцените автора
Добавить комментарий