Удаляем якорь вида “#more-123″ из ссылки “читать далее”
При вставке в текст поста тега <!--more--> WordPress добавляет к ссылке “читать далее” якорь вида #more-123 (цифра – это ID поста), чтобы при переходе по этой ссылке переместиться в то место, где этот тег вставлен. На мой взгляд, это совершенно ненужная вещь, и от нее можно легко избавиться.
В файл functions.php темы необходимо поместить следующий код:
function no_more_jumping($post) {
return '<a href="'.get_permalink($post->ID).'" class="read-more">'.'Читать далее »'.'</a>';
}
add_filter('the_content_more_link', 'no_more_jumping');
Вот и все.
Сделал, спасибо!
По идее это полезно с точки зрения seo, если я не ошибаюся..
Спасиб!
Вопрос: какой ты плагин используешь для вставки кода на страницу и есть ли у тебя такой баг, что если зайти отредактировать запись, то вордпресс херит весь код, нужно обязательно заходить только в вид: html а не “визуальный”.
http://www.viper007bond.com/wordpress-plugins/syntaxhighlighter/
Я визуальным редактором не пользуюсь, поэтому у меня нет такой проблемы.
а у меня не работает, WP 3,0,1. Может есть другие способы?
Привет! Попробую следующий код:
function remove_more_jump_link($link) {
$offset = strpos($link, '#more-');
if ($offset) {
$end = strpos($link, '"',$offset);
}
if ($end) {
$link = substr_replace($link, '', $offset, $end-$offset);
}
return $link;
}
add_filter('the_content_more_link', 'remove_more_jump_link');
Проверял на 3 версии – работает :)
Спасибо. Помог ваш код.
Подтверждаю!
У меня WordPress 3.2.1. встало без проблем! Автор Красавец
А можно было код написать так, чтобы его удобно было целиком скопировать и сразу использовать?
Цифирки лишние копируются, приходится редактировать
Наведите курсор на код, появится серая панелька. Если на первую иконку кликните, откроется чистый код, если на вторую – код сразу скопируется в буфер обмена.
Подскажите конкретнее где в файле functions.php нужно вставить код?
В конце? В начале? Заранее спасибо…
Без разницы, главное, чтобы он находился между
<?phpи?>У меня не работает. Пробую на Wordpress 2.9.2 с плагином Evermore.
Помоги разобраться, очень нужно удалить якорь….
Сейчас проверил – действительно не работает (на момент написания статьи работало).
Замените
excerpt_moreнаthe_content_more_link.Сейчас подправлю статью.
Спасибо что помог с the_content_more_link, а то я прям головой об стенку бился.
А есть какое нибудь решение, чтобы удалить якоря в комментариях?
Это какие конкретно?
Ну вот например, когда оставляешь комментарий, то страница имеет вид:
http://wphacks.name/udalyaem-yakor-vida-more-123-iz-ssylki-chitat-dalee/#comments-123
т.е. якорь с номером комментария, можно как нибудь от него избавиться?
По-моему, без ковыряния в исходниках движка его не убрать.
Очень жаль, спасибо!
А в comments-template.php невозможно это сделать? Мне тоже надо убрать якоря из ссылок под записями “добавить комментарий” (якорь #respond) и “комментарии” (якорь #comments). Ищу решение, пока без результатно, в php не силен.
Можно решить проблему, по-грязному правда. В файле /wp-includes/comment-template.php нашел #comments и #respond (они в ссылках с якорями отображаются) и переименовал их типа #comments1 и #respond1. Вуаля.
Можно и так. В файл function.php вашей темы, добавляете следующее:
function no_tag_anchor_more_link ($content){
global $post;
$pattern = «\»#more-{$post->ID}\"";
$replacement = '';
$content = preg_replace ($pattern, $replacement, $content);
return $content;
}
add_filter ('the_content', «no_tag_anchor_more_link»);
у меня пишет Fatal error: Call to undefined function add_filter() in Z:\home\uk-vko.kz\www\wp-includes\functions.php on line 5. Что делать?
Даже не представляю.