Skip to content

Commit c6ed6d5

Browse files
committed
Refactoring based off @whoami-pwd feedback. Reduced some of the nesting for cotent replacement.
1 parent be14c9a commit c6ed6d5

File tree

2 files changed

+57
-45
lines changed

2 files changed

+57
-45
lines changed

plugins/faustwp/includes/replacement/callbacks.php

Lines changed: 17 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,10 @@
3333
*/
3434
function content_replacement( string $content ): string {
3535

36+
if ( ! $content ) {
37+
return '';
38+
}
39+
3640
$replace_content_urls = domain_replacement_enabled();
3741
$replace_media_urls = ! use_wp_domain_for_media();
3842

@@ -53,17 +57,11 @@ function content_replacement( string $content ): string {
5357
}
5458

5559
if ( $replace_content_urls && $replace_media_urls ) {
56-
foreach ( $wp_site_urls as $site_url ) {
57-
$content = str_replace( $site_url, $frontend_uri, $content );
58-
}
59-
60-
return $content;
60+
return str_replace( $wp_site_urls, $frontend_uri, $content );
6161
}
6262

6363
if ( $replace_media_urls ) {
64-
$wp_media_site_url = $frontend_uri . $relative_upload_url;
65-
66-
return faustwp_replace_media_url( $content, $wp_media_urls, $wp_media_site_url );
64+
return faustwp_replace_media_url( $content, $wp_media_urls, $frontend_uri . $relative_upload_url );
6765
}
6866

6967
foreach ( $wp_site_urls as $site_url ) {
@@ -129,20 +127,18 @@ function image_source_srcset_replacement( $sources ) {
129127
);
130128

131129
foreach ( $sources as $width => $source ) {
132-
if ( $replace_media_urls ) {
133-
if ( substr( $source['url'], 0, strlen( $relative_upload_url ) ) === $relative_upload_url ) {
134-
$sources[ $width ]['url'] = $frontend_uri . $source['url'];
135-
} else {
136-
$sources[ $width ]['url'] = faustwp_replace_media_url( $source['url'], $wp_media_urls, $wp_media_site_url );
137-
}
138-
} else {
139-
$url = $source['url'];
140-
141-
foreach ( $wp_site_urls as $wp_site_url ) {
142-
$url = preg_replace( $patterns, $wp_site_url . '/', $url );
143-
}
144-
$sources[ $width ]['url'] = $url;
130+
131+
if ( ! $replace_media_urls ) {
132+
$sources[ $width ]['url'] = faustwp_replace_urls( $patterns, $wp_site_urls, $source['url'] );;
133+
continue;
145134
}
135+
136+
if ( strpos( $source['url'], $relative_upload_url ) === 0 ) {
137+
$sources[ $width ]['url'] = $frontend_uri . $source['url'];
138+
continue;
139+
}
140+
141+
$sources[ $width ]['url'] = faustwp_replace_media_url( $source['url'], $wp_media_urls, $wp_media_site_url );
146142
}
147143

148144
return $sources;

plugins/faustwp/includes/replacement/functions.php

Lines changed: 40 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -140,25 +140,20 @@ function faustwp_get_wp_site_urls() {
140140
$site_url = site_url();
141141
$host_url = wp_parse_url( $site_url, PHP_URL_HOST );
142142

143-
if ( is_string( $host_url ) ) {
144-
if ( substr( $site_url, 0, 5 ) === 'http:' ) {
145-
$urls = array(
146-
'http://' . $host_url,
147-
'https://' . $host_url,
148-
'//' . $host_url,
149-
);
150-
} else {
151-
$urls = array(
152-
'https://' . $host_url,
153-
'http://' . $host_url,
154-
'//' . $host_url,
155-
);
156-
}
157-
} else {
158-
$urls = array( $site_url );
143+
if ( ! is_string( $host_url ) ) {
144+
return apply_filters( 'faustwp_get_wp_site_urls', [ $site_url ] );
159145
}
160146

161-
return apply_filters( 'faustwp_get_wp_site_urls', $urls );
147+
$is_https = substr( $site_url, 0, 6 ) === 'https:';
148+
149+
return apply_filters(
150+
'faustwp_get_wp_site_urls',
151+
array(
152+
$is_https ? "https://$host_url" : "http://$host_url",
153+
$is_https ? "http://$host_url" : "https://$host_url",
154+
"//$host_url"
155+
)
156+
);
162157
}
163158

164159
/**
@@ -187,33 +182,54 @@ function faustwp_get_wp_media_urls() {
187182
* Gets the relative wp-content upload URL.
188183
*
189184
* @param array<string> $site_urls An array of site URLs.
185+
*
190186
* @return string The relative upload URL.
191187
*/
192188
function faustwp_get_relative_upload_url( $site_urls ) {
193189
$upload_dir = wp_upload_dir()['baseurl'];
190+
191+
194192
foreach ( $site_urls as $site_url ) {
195-
if ( strpos( $upload_dir, $site_url ) !== false ) {
193+
if ( false !== strpos( $upload_dir, $site_url ) ) {
196194
return (string) str_replace( $site_url, '', $upload_dir );
197195
}
198196
}
199197

200-
return false;
198+
return '';
201199
}
202200

203201
/***
204202
* Replaces the media URL for various media urls
205203
*
206204
* @param string $content The content to be updated with the new media URL.
207-
* @param array $wp_media_urls An array of media URLS.
205+
* @param array $wp_media_urls An array of media URLS.
208206
* @param string $replace_url The media URL to be updated to.
209207
*
210208
* @return string
211209
*/
212210
function faustwp_replace_media_url( string $content, array $wp_media_urls, string $replace_url ) {
211+
return str_replace( $wp_media_urls, $replace_url, $content );
212+
}
213213

214-
foreach ( $wp_media_urls as $media_url ) {
215-
$content = str_replace( $media_url, $replace_url, $content );
216-
}
217214

218-
return (string) $content;
215+
/**
216+
* @param array $patterns
217+
* @param mixed $wp_site_urls
218+
* @param mixed $url
219+
*
220+
* @return array|string|string[]|null
221+
*/
222+
function faustwp_replace_urls( array $patterns, mixed $wp_site_urls, mixed $url ) {
223+
$i = 0;
224+
225+
return preg_replace_callback(
226+
$patterns,
227+
function () use ( &$wp_site_urls, &$i ) {
228+
$replacement = $wp_site_urls[ $i ] . '/';
229+
$i ++;
230+
231+
return $replacement;
232+
},
233+
$url
234+
);
219235
}

0 commit comments

Comments
 (0)