Иногда при работе с ЧПУ (человеко-понятными URL) в WordPress возникает проблема: в адресах появляются нежелательные повторяющиеся символы, например, двойные дефисы, подчёркивания или пробелы, которые трансформируются в %20 и ухудшают восприятие ссылки пользователями и поисковиками. В этой статье разберём, как удалить соседние одинаковые или нежелательные символы в URL WordPress, чтобы сделать адреса чище и удобнее.
Почему важно чистить URL и удалять соседние символы
Чистые и корректные URL важны для SEO и удобства пользователей. Наличие повторяющихся символов, таких как -- или __, может привести к путанице, ухудшению индексации и даже снижению рейтинга в поисковой выдаче. К тому же, излишние символы делают адреса длиннее и менее читаемыми.
Например, при автоматическом формировании слагов из заголовков с несколькими пробелами или знаками препинания, WordPress может вставлять лишние дефисы подряд. Это особенно часто встречается при импорте контента или при использовании нестандартных плагинов.
Удаление соседних символов помогает сделать URL более аккуратными и понятными, что положительно сказывается на SEO и пользовательском опыте.
Как WordPress формирует слаги и где возникают повторяющиеся символы
По умолчанию WordPress преобразует заголовок записи в слаг с помощью функции sanitize_title(). При этом все пробелы заменяются на дефисы, а недопустимые символы удаляются. Но если в заголовке несколько пробелов подряд, получается несколько дефисов подряд.
Например, заголовок "Пример -- статьи" может превратиться в слаг primer----stati. Такие URL не эстетичны и могут вызвать проблемы при индексации.
Также при импорте или при редактировании вручную можно случайно добавить лишние дефисы или подчёркивания.
Решение: фильтрация слага для удаления соседних символов
Для исправления этой проблемы можно использовать фильтр sanitize_title, чтобы обработать слаг до сохранения. Ниже пример функции, которая удаляет повторяющиеся дефисы и другие нежелательные символы.
function yelly_sanitize_title_remove_adjacent_symbols( $title ) {
// Убираем повторяющиеся дефисы
$title = preg_replace('/-+/', '-', $title);
// Убираем повторяющиеся подчёркивания
$title = preg_replace('/_+/', '_', $title);
// Убираем повторяющиеся пробелы, если есть (редко)
$title = preg_replace('/\s+/', ' ', $title);
// Удаляем дефис в начале и конце
$title = trim( $title, '-_ ' );
return $title;
}
add_filter( 'sanitize_title', 'yelly_sanitize_title_remove_adjacent_symbols', 10 );
Эта функция с помощью регулярных выражений заменяет все повторяющиеся дефисы и подчёркивания одним символом, а также очищает начало и конец строки от дефисов и пробелов.
Пример использования с WPCommunity Theme и ABC Pagination
Если вы используете тему WPCommunity и плагин ABC Pagination, чистые URL особенно важны для пагинации и навигации по сайту.
Некорректные слаги могут привести к ошибкам перехода между страницами, что негативно сказывается на пользовательском опыте. Поэтому добавленная фильтрация поможет избежать подобных проблем.
Дополнительные советы для работы с URL в WordPress
Используйте плагин Clearfy Pro для оптимизации URL
Плагин Clearfy Pro предлагает расширенные настройки SEO и оптимизации, включая очистку URL и удаление лишних параметров. Его можно настроить дополнительно к ручной фильтрации.
Проверьте настройки постоянных ссылок в WordPress
Иногда проблемы с URL возникают из-за нестандартных настроек в админке. Рекомендуется использовать структуру /postname/ или кастомные, но без лишних символов и сложных параметров.
Обратите внимание на импорт и редактирование контента
Если вы импортируете статьи и страницы из других систем, обязательно проверяйте и очищайте слаги, чтобы избежать появления повторяющихся символов.
Выводы и рекомендации
Удаление соседних символов в URL WordPress — важный шаг для поддержания чистоты и удобства ссылок. Использование фильтра sanitize_title с регулярными выражениями позволяет легко исправить проблему с повторяющимися дефисами и подчёркиваниями.
Дополнительно стоит использовать проверенные плагины для SEO-оптимизации и внимательно следить за структурой постоянных ссылок.
Таким образом вы улучшите восприятие сайта пользователями и повысите его позиции в поисковой выдаче.