Главная WordPress

WordPress: перемещение ссылки «читать далее» в произвольное место

Я уже не раз сталкивался с ситуацией, когда, согласно дизайну, необходимо было в шаблоне WordPress разместить ссылку «Читать далее» в особом месте, а не там, где она выводится по умолчанию. Плюс к этому необходимо было сделать так, чтобы, если в текст статьи не вставлен тег <!--more-->, то ссылку «Читать далее» не выводить.

Подобные 2 задачи реализуются следующим образом.

Во-первых, в то место шаблона WordPress, где будет отображаться наша особая ссылка «Читать далее», необходимо вставить следующий код:

<?php if ($pos=strpos($post->post_content, '<!--more-->')) { ?><a href="<?php the_permalink() ?>" class="more">Читать далее</a><?php } ?>

Этим кодом мы проверяем, использовался ли тег <!--more-->, и, если да, то выводим ссылку.

Во-вторых, осталось удалить ссылку «Читать далее», которую WordPress выводит по умолчанию. Для этого достаточно в файл functions.php поместить следующую функцию:

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

Однако стоит иметь в виду, что данная функция не будет работать, если вы используете WordPress версии 2.7.1 или ниже. В последнем случае спрятать ссылку, можно, используя CSS, вот так:

.more-link {display: none}

Вот, собственно, и все.

Единственно, что еще хочется добавить, что в нашей новой ссылке не будет якоря вида more-123, который присутствует в ссылке по умолчанию. Лично я в нем необходимости не вижу.

Ваш комментарий будет первым