Created
January 18, 2023 22:06
-
-
Save erickolivares/189157a3b0bcef2e226b6b21879a00d2 to your computer and use it in GitHub Desktop.
Images
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// Put this in wp-config.php and replace https://example.com/ with the URL of the production site. | |
define( 'RH_USE_REMOTE_MEDIA_URL', 'SITE URL' ); | |
// Put the rest of this in functions.php or a custom plugin or somewhere else. | |
if ( defined( 'RH_USE_REMOTE_MEDIA_URL' ) && ! empty( RH_USE_REMOTE_MEDIA_URL ) ) { | |
add_filter( 'wp_get_attachment_image_src', 'filter_wp_get_attachment_image_src' ); | |
add_filter( 'wp_calculate_image_srcset', 'filter_wp_calculate_image_srcset' ); | |
add_filter( 'wp_get_attachment_url', 'filter_wp_get_attachment_url' ); | |
} | |
function filter_wp_get_attachment_image_src( $image = array() ) { | |
if ( ! is_array( $image ) || empty( $image ) ) { | |
return $image; | |
} | |
$wp_upload_dir = wp_upload_dir(); | |
$base_dir = $wp_upload_dir['basedir']; | |
$base_url = $wp_upload_dir['baseurl']; | |
$absolute_path = str_replace( $base_url, $base_dir, $image[0] ); | |
if ( file_exists( $absolute_path ) ) { | |
return $image; | |
} | |
$find = get_site_url(); | |
$replace = RH_USE_REMOTE_MEDIA_URL; | |
$image[0] = str_replace( $find, $replace, $image[0] ); | |
return $image; | |
} | |
function filter_wp_calculate_image_srcset( $src = array() ) { | |
if ( is_array( $src ) && ! is_admin() ) { | |
$wp_upload_dir = wp_upload_dir(); | |
$base_dir = $wp_upload_dir['basedir']; | |
$base_url = $wp_upload_dir['baseurl']; | |
$find = get_site_url(); | |
$replace = RH_USE_REMOTE_MEDIA_URL; | |
foreach ( $src as $key => $val ) { | |
$absolute_path = str_replace( $base_url, $base_dir, $val['url'] ); | |
if ( ! file_exists( $absolute_path ) ) { | |
$val['url'] = str_replace( $find, $replace, $val['url'] ); | |
$src[ $key ] = $val; | |
} | |
} | |
} | |
return $src; | |
} | |
function filter_wp_get_attachment_url( $url = '' ) { | |
if ( is_admin() ) { | |
return $url; | |
} | |
$wp_upload_dir = wp_upload_dir(); | |
$base_dir = $wp_upload_dir['basedir']; | |
$base_url = $wp_upload_dir['baseurl']; | |
$find = get_site_url(); | |
$replace = RH_USE_REMOTE_MEDIA_URL; | |
$absolute_path = str_replace( $base_url, $base_dir, $url ); | |
if ( ! file_exists( $absolute_path ) ) { | |
$url = str_replace( $find, $replace, $url ); | |
} | |
return $url; | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment