Удаление #more-id анкора из ссылок на полную запись в WordPress

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

Эту ссылку можно заменить на ссылку на полную запись без всяких добавлений, добавив в файл functions.php вашей темы следующий код:

function no_more_jumping($post) {
return '<a href="'.get_permalink($post->ID).'" class="read-more">'.'Читать полностью <span class="meta-nav">&rarr;</span>'.'</a>';
}
add_filter('the_content_more_link', 'no_more_jumping');

Замените стили на необходимые в случае надобности. В этом случае ссылка после разрыва будет заменена на ссылку на саму запись с текстом «Читать полностью».

Есть другой способ, но в нем изменяются непосредсвенно файлы WordPress и эти изменения надо восстанавливать после каждого обновления. Поэтому описанный способ видится более универсальным и надежным.

Комментарии 9

  • Спасибо! Давно думал о изменении #more
    Вот не могу найти , что бы убрать у Title начало фразы «Ссылка на запись».
    У вас на сайте пишет, когда наводишь на Title — постоянная ссылка….
    Может вы в курсе, как убрать это начало записи?

  • Это зависит от реализации. Может быть прямо в цикле вывода или в файле перевода.
    В вашей теме похоже это сделано в файле перевода, где «Permanent Link: %s» заменяется на «Ссылка на запись %s». Можно там изменить. А можно прямо в файле teaser.php заменить printf(__(‘Permalink to %s’, ‘mystique’), the_title_attribute(‘echo=0’)); на просто the_title();

    • Спасибо за совет!
      Заменил файл перевода, только пришлось делать дочерную тему.

      • Мне все таки второй вариант кажется лучше, хотя бы из-за того, что убираются ненужные вызовы функций, если ничего добавлять не надо к названию записи.

        • Я пробовал с начало второй вариант, расположена эта функция в файле related-posts.php.
          Там я нашел сточку <a href="URL(); ?>» title=»te(‘Permanent Link: %s’, $post->getTitle()); ?>»>Title(); ?>
          Удалял даже тег te(‘Permanent Link: %s’, $post->getTitle()); ?>»>
          А оно все равно выводит запись. Пока что помог вариант установки дочерней темы и в ней изменил языковый пакет. Хотя я тоже за второй вариант, что бы удалить функцию и не парится. Но что то оно не фурычит((

  • Я использую и тот и тот вариант. Спасибо за размещение.

  • Спасибо все прекрасно работает!

  • Спасибо все работает прекрасно!

  • Спасибо, а то уже перерыл все 🙁 менять все в файлах самого ВП не совсем удобно, каждый месяц обновления щас почти выходят уже 🙁

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.