Грамотно удаляем тег #more из ссылки на пост WordPress

Честное слово иногда я просто начинаю сомневаться в том, что CMS WordPress является самый лучший и популярный среди бесплатных аналогов. Дело в том, что хотя данный движок довольно распространенный и многофункциональный, но не редко он имеет привычку капризничать и становится каким-то неуправляемым. Или у меня опыта мало? Такое тоже возможно, короче, на одном из своих сайтов на Вордпресс мне пришлось изменить шаблон на полпути из-за того, что старый шаблон был с фиксированной шириной, а это поисковикам не нравится. Они (поисковые системы) хотят, чтобы шаблон был адаптивный, для того, чтобы его можно было посмотреть на мобильных устройствах Ладно изменил я шаблон — это же не конец света!

Добавляю я на сайт постов ежедневно, из-за чего сразу начал писать новую интересную статью подготовил ее, опубликовал. А когда перешел по кнопке «Читать подробно» открылась страница, и я любовался с результатом своей работы, понравилась мне статья. Только когда я заглянул в адресную строку в браузере, где видно URL я чуть не ошалел, ссылка на статью была в таком виде:

Ссылка с неприличным хвостом е-море

Честно говоря, просто обидно стало, При этом, когда переход был по название поста все было нормально, т.е. лишний кусок кода не добавлялось. Но это же просто парадокс, как я могу пользователей предупредить о том, что открывать статью в полном обзоре нужно переходить по название статьи и не по кнопке «Читать подробно».

Дело в том, что я в настройках сайта где «Постоянные ссылки» выбрал для ссылок префикс /%postname%/ и у меня обычно получается красивые ссылки в виде

Моя стандартная ссылка

Но теперь с добавлением куска кода #more-1546 у меня появился второй адрес одного того же поста. Т.е. получается один пост на сайте, может появиться с разными ссылками. А это уже считается дубль контента, поисковики за это жестко наказывают, а если подобных ссылок возникнуть много то можно получить и санкции от поисковых систем.

Чтобы такого Армагеддона не случилось я начал искать в сети решение данной проблемы, искал довольно долго, но, наконец нашел то, что искал. Опытные пользователи предлагали четыре варианта для решения данной проблемы.

Из них два варианта я сразу исключил из-за того, что в обоих случаях нужно было копаться в файле functions.php и добавить какой-то набор кода в данный файл. Если бы Вы знали, как я не люблю изменить файл functions.php, то всегда поступили бы также и никогда не трогали бы данный файл. Третий метод устранения проблемы подразумевал воспользоваться одаренным плагином Remove More.

Сразу скажу, что этого я тоже не люблю Потому, что вообще ненавижу плагины и никогда не пользуюсь ими если есть хоть какой-то другой метод. На это есть ряд серьезных причин, почему я их не использую, во-первых любой плагин лишняя нагрузка для сайта, во-вторых они конфликтуют друг с другом, и в-третьих я уже довольно опытный вебмастер, который сможет решить вопрос без плагина.

Оставался четвертый вариант, я выбрал его, и скажу, что поступил правильно, — это было довольно интересное решение. Нужно было просто убрать кусочек кода в файле post-template.php. Не лишне сказать, что этот замечательный файл находится в папке wp-includes. Итак, фрагмент кода #more-{$_post->ID} которую мы должны убрать из файла post-template.php способствует генерированию полного поста блога на движке WordPress. Сама функция с этим куском кода в полном виде выглядит таким образом:   

$output .= apply_filters( ‘the_content_more_link’, ‘ <a href=»‘ . get_permalink( $_post ) . «#more-{$_post->ID}\» class=\»more-link\»>$more_link_text</a>», $more_link_text );

Еще раз повторяю, что в данном случае нам нужно удалить исключительно вот этот кусок — #more-{$_post->ID}, Я его выделил красным, важно обратить внимание на то, что кавычки и слеш остается, удаляется только выделенный красным сам код.

Можно сказать, что мы уже подошли к концу, открываем папку wp-includes и редактируем файл post-template.php. Чтобы долго не копатьсяв файле и легко найти кусок кода в виде«#more-{$_post->ID}\» можно воспользоваться комбинацией Ctrl+F

Удаление кода е-море

и сразу находим его, после чего удаляем #more-{$_post->ID} и закрываем файл с обязательным сохранением. Вот и все уважаемые читатели, теперь ссылки на посты будут обычными и стандартными — т.е. без лишнего хвоста.