Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
Filter wordpress uploads
<?php
add_filter('wp_get_attachment_url', function($url) {
if (getenv('USE_S3_UPLOADS')) {
$url = 'https://' . getenv('AWS_S3_BUCKET') . '.s3.amazonaws.com' . str_replace(WP_CONTENT_URL, '', $url);
}
return $url;
});
add_filter('wp_calculate_image_srcset', function($sources) {
if (getenv('USE_S3_UPLOADS')) {
foreach ($sources as &$s) {
$s['url'] = 'https://' . getenv('AWS_S3_BUCKET') . '.s3.amazonaws.com' . str_replace(WP_CONTENT_URL, '', $s['url']);
}
}
return $sources;
});
add_filter('the_content', function($content) {
if (getenv('USE_S3_UPLOADS')) {
$content = preg_replace(
"~https?\:\/\/www.site.com\/wp-content\/uploads~",
'https://' . getenv('AWS_S3_BUCKET') . '.s3.amazonaws.com/uploads',
$content
);
}
return $content;
}, PHP_INT_MAX);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment