wpmake.ru wordpress WPMake

Как убрать пробелы в именах файлов и URL в WordPress

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

Почему важно убирать пробелы из имен файлов и URL

Пробелы в URL кодируются как %20, что усложняет их восприятие и иногда вызывает проблемы при передаче ссылок через электронную почту или мессенджеры. Кроме того, некоторые серверы могут неправильно обрабатывать пробелы, что приводит к ошибкам 404. В именах файлов пробелы усложняют автоматическую обработку и могут вызвать проблемы при бэкапах или миграциях.

Оптимизация имен файлов и URL — это важный этап подготовки сайта к профессиональному использованию и продвижению. Кроме того, это улучшает безопасность и снижает риск возникновения ошибок.

Как автоматически заменить пробелы в именах файлов при загрузке в WordPress

WordPress позволяет подключать фильтры для обработки имен файлов при загрузке. Используя хук sanitize_file_name, можно заменить пробелы на дефисы или подчёркивания.

Пример функции для замены пробелов на дефисы:

function wpmake_sanitize_file_name($filename) {
    $filename = str_replace(' ', '-', $filename); // заменяем пробелы на дефисы
    // дополнительно можно удалить другие нежелательные символы
    return $filename;
}
add_filter('sanitize_file_name', 'wpmake_sanitize_file_name', 10);

Эту функцию достаточно добавить в файл functions.php вашей темы или создать отдельный плагин. При загрузке файлов пробелы в их именах будут автоматически заменяться на дефисы, что улучшит совместимость и удобство.

Расширение обработки имени файла

Для более строгой очистки можно добавить удаление всех символов, кроме латинских букв, цифр, дефисов и подчёркиваний:

function wpmake_strict_sanitize_file_name($filename) {
    $filename = str_replace(' ', '-', $filename);
    // Удаляем все символы, кроме английских букв, цифр, дефисов и точек
    $filename = preg_replace('/[^A-Za-z0-9\-\.]/', '', $filename);
    return $filename;
}
add_filter('sanitize_file_name', 'wpmake_strict_sanitize_file_name', 10);

Это гарантирует, что имена файлов будут максимально чистыми и корректными для всех платформ.

Как убрать пробелы из URL записей и страниц в WordPress

По умолчанию WordPress в слагах URL заменяет пробелы на дефисы, но иногда при импорте или программном создании постов в слагах могут появляться пробелы или некорректные символы. Чтобы гарантировать корректность URL, можно использовать фильтр sanitize_title.

Пример функции, которая дополнительно убирает пробелы и нежелательные символы из слага:

function wpmake_sanitize_post_slug($slug, $post_ID, $post_status, $post_type) {
    $slug = str_replace(' ', '-', $slug);
    $slug = preg_replace('/[^a-z0-9\-]/', '', strtolower($slug));
    return $slug;
}
add_filter('sanitize_title', 'wpmake_sanitize_post_slug', 10, 4);

Это позволит автоматически очищать URL при сохранении записи, избегая пробелов и нестандартных символов.

Использование плагина Clearfy для оптимизации URL и имен файлов

Если не хочется писать собственный код, можно использовать плагин Clearfy Pro, который среди прочих функций имеет возможность очищать имена файлов и URL от пробелов и лишних символов. Подробнее о плагине можно узнать на официальной странице Clearfy Pro.

Практические советы по работе с пробелами в URL и именах файлов

  • Всегда проверяйте имена файлов при массовой загрузке. Если загружаете много файлов разом, используйте скрипты или плагины для автоматической очистки.
  • Используйте дефисы, а не подчёркивания в URL. Поисковые системы рекомендуют дефисы как разделители слов.
  • Не используйте кириллицу в именах файлов и URL. Лучше транслитерируйте имена, чтобы избежать проблем с кодировками на сервере.
  • Проверяйте корректность URL после импорта записей. Иногда импортированные записи имеют некорректные слаги с пробелами, которые нужно исправить программно.

Пример создания плагина для удаления пробелов из имен файлов при загрузке

Если хотите оформить код в виде плагина, создайте файл wpmake-filename-cleaner.php с таким содержимым:

<?php
/**
 * Plugin Name: WPMake Filename Cleaner
 * Description: Автоматически удаляет пробелы и нежелательные символы из имен файлов при загрузке в WordPress
 * Version: 1.0
 * Author: WPMake
 */

function wpmake_plugin_sanitize_file_name($filename) {
    $filename = str_replace(' ', '-', $filename);
    $filename = preg_replace('/[^A-Za-z0-9\-\.]/', '', $filename);
    return $filename;
}
add_filter('sanitize_file_name', 'wpmake_plugin_sanitize_file_name', 10);

?>

Активируйте плагин в админке — теперь при загрузке в медиабиблиотеку все пробелы будут заменяться, а имена файлов очищаться автоматически.

Заключение по теме

Удаление пробелов из имен файлов и URL — важная задача для стабильности и SEO WordPress-сайта. Используя фильтры sanitize_file_name и sanitize_title, можно легко автоматизировать этот процесс. При необходимости можно дополнительно использовать готовые решения, например, плагин Clearfy Pro, который упрощает настройку и улучшает оптимизацию.

×
Сделай свой сайт крутым!

Скидка -20% на премиум плагины WordPress

Выбрать плагин сейчас ⋙