Иногда возникает необходимость изменить URL выводимых изображений в WordPress. Это полезно, если вы хотите оптимизировать загрузку сайта, использовать CDN, изменить структуру ссылок или скрыть реальное расположение файлов. В этой статье разберём несколько способов, как это сделать с помощью кода и плагинов.
Почему стоит менять URL изображений в WordPress
По умолчанию WordPress формирует URL изображений исходя из структуры загрузок, например, https://example.com/wp-content/uploads/2024/06/image.jpg. Это работает, но не всегда подходит для SEO, скорости загрузки или безопасности.
Основные причины изменить URL изображений:
- Подключение CDN для ускорения загрузки.
- Сокрытие реального пути к файлам.
- Оптимизация SEO, если нужно изменить структуру ссылок.
- Интеграция с внешними сервисами или облачными хранилищами.
Рассмотрим, как реализовать эти задачи.
Изменение URL изображений через фильтр WordPress wp_get_attachment_url
WordPress позволяет фильтровать URL вложений через хуки. Например, чтобы заменить базовый путь URL, можно использовать следующий код в файле functions.php вашей темы или в отдельном плагине:
function wpskills_change_attachment_url( $url, $post_id ) {
// Меняем базовый URL с wp-content/uploads на свой CDN
$cdn_url = 'https://cdn.example.com/uploads';
$upload_dir = wp_upload_dir();
if ( strpos( $url, $upload_dir['baseurl'] ) !== false ) {
$url = str_replace( $upload_dir['baseurl'], $cdn_url, $url );
}
return $url;
}
add_filter( 'wp_get_attachment_url', 'wpskills_change_attachment_url', 10, 2 );В этом примере мы заменяем стандартный путь на CDN-адрес. Такой способ подходит, если у вас есть настроенный CDN, который зеркалит папку загрузок.
Как проверить работу фильтра
После добавления кода очистите кэш сайта, если используете плагины кеширования, и проверьте в браузере исходный код страницы. URL изображений должны начинаться с https://cdn.example.com/uploads.
Использование плагина Clearfy Pro для управления URL медиафайлов
Плагин Clearfy Pro предлагает много функций оптимизации, в том числе управление выводом URL медиафайлов.
С помощью Clearfy Pro можно:
- Подключить CDN без изменения кода.
- Автоматически переписать URL медиа.
- Удалить лишние параметры из URL изображений.
Это отличный вариант для тех, кто не хочет лезть в код, но хочет контролировать URL изображений и повысить скорость загрузки.
Реализация перенаправления старых URL изображений на новые
Если вы изменили структуру URL изображений, важно не потерять трафик и не получить 404 ошибки. Для этого нужно настроить перенаправления.
Пример простого перенаправления в .htaccess:
RewriteEngine On
RewriteCond %{REQUEST_URI} ^/wp-content/uploads/(.*)$
RewriteRule ^wp-content/uploads/(.*)$ https://cdn.example.com/uploads/$1 [R=301,L]Это правило перенаправит все запросы с классического пути на новый CDN.
Как добавить пользовательские поля с альтернативным URL для изображений
Иногда нужно не заменять URL глобально, а для отдельных изображений указывать альтернативный путь. Для этого можно использовать пользовательские поля (custom fields) и фильтр.
Пример реализации:
function wpskills_custom_attachment_url( $url, $post_id ) {
$custom_url = get_post_meta( $post_id, '_wpskills_custom_url', true );
if ( $custom_url ) {
return esc_url( $custom_url );
}
return $url;
}
add_filter( 'wp_get_attachment_url', 'wpskills_custom_attachment_url', 10, 2 );Теперь вы можете для каждого изображения в админке добавить поле _wpskills_custom_url с нужным URL.
Поддержка WebP и замена расширений в URL изображений
Для лучшей оптимизации сайта рекомендуют использовать формат WebP. Можно динамически менять расширение выводимых изображений на .webp, если браузер поддерживает.
Пример кода:
function wpskills_replace_image_extension_to_webp( $url, $post_id ) {
if ( strpos( $_SERVER['HTTP_ACCEPT'], 'image/webp' ) !== false ) {
$url_webp = preg_replace( '/\.(jpg|jpeg|png)$/i', '.webp', $url );
return $url_webp;
}
return $url;
}
add_filter( 'wp_get_attachment_url', 'wpskills_replace_image_extension_to_webp', 10, 2 );<Важно, чтобы у вас реально существовали файлы с расширением .webp в папке загрузок.
Вывод
Изменение URL выводимых изображений в WordPress — это мощный инструмент для оптимизации сайта, безопасности и SEO. Вы можете использовать фильтры WordPress для гибкой замены ссылок, плагин Clearfy Pro для удобного управления и настраивать перенаправления, чтобы не потерять позиции в поиске.
Экспериментируйте с кодом и плагинами, чтобы подобрать оптимальное решение под свои задачи.