|
27 | 27 | /** |
28 | 28 | * Callback for WordPress 'the_content' filter. |
29 | 29 | * |
30 | | - * @param string $content The post content. |
| 30 | + * @param null|string $content The post content. |
31 | 31 | * |
32 | | - * @return string The post content. |
| 32 | + * @return null|string The post content. |
33 | 33 | */ |
34 | | -function content_replacement( string $content ): string { |
35 | | - |
36 | | - if ( ! $content ) { |
37 | | - return ''; |
38 | | - } |
39 | | - |
40 | | - $replace_content_urls = domain_replacement_enabled(); |
41 | | - $replace_media_urls = ! use_wp_domain_for_media(); |
| 34 | +function content_replacement( $content ) { |
42 | 35 |
|
43 | | - if ( ! $replace_content_urls && ! $replace_media_urls ) { |
44 | | - return $content; |
45 | | - } |
| 36 | + try { |
| 37 | + if ( ! $content ) { |
| 38 | + return $content; |
| 39 | + } |
| 40 | + $replace_content_urls = domain_replacement_enabled(); |
| 41 | + $replace_media_urls = ! use_wp_domain_for_media(); |
| 42 | + if ( ! $replace_content_urls && ! $replace_media_urls ) { |
| 43 | + return $content; |
| 44 | + } |
| 45 | + $wp_site_urls = faustwp_get_wp_site_urls( site_url() ); |
| 46 | + if ( empty( $wp_site_urls ) ) { |
| 47 | + return $content; |
| 48 | + } |
| 49 | + $relative_upload_url = faustwp_get_relative_upload_url( $wp_site_urls, wp_upload_dir()['baseurl'] ); |
| 50 | + $wp_media_urls = faustwp_get_wp_media_urls( $wp_site_urls, $relative_upload_url ); |
| 51 | + $frontend_uri = (string) faustwp_get_setting( 'frontend_uri' ) ?? '/'; |
| 52 | + if ( $replace_content_urls && $replace_media_urls ) { |
| 53 | + return str_replace( $wp_site_urls, $frontend_uri, $content ); |
| 54 | + } |
| 55 | + if ( $replace_media_urls ) { |
| 56 | + return str_replace( $wp_media_urls, $frontend_uri . $relative_upload_url, $content ); |
| 57 | + } |
| 58 | + $site_urls_pattern = implode( '|', array_map( 'preg_quote', $wp_site_urls ) ); |
| 59 | + $pattern = '#(' . $site_urls_pattern . ')(?!' . $relative_upload_url . '(\/|$))#'; |
46 | 60 |
|
47 | | - $wp_site_urls = faustwp_get_wp_site_urls( site_url() ); |
48 | | - if ( empty( $wp_site_urls ) ) { |
| 61 | + return preg_replace( $pattern, $frontend_uri, $content ); |
| 62 | + } catch ( \Exception $e ) { |
| 63 | + // phpcs:ignore WordPress.PHP.DevelopmentFunctions.error_log_error_log |
| 64 | + error_log( 'Error replacing content URLs: ' . $e->getMessage() ); |
49 | 65 | return $content; |
50 | 66 | } |
51 | | - |
52 | | - $relative_upload_url = faustwp_get_relative_upload_url( $wp_site_urls, wp_upload_dir()['baseurl'] ); |
53 | | - $wp_media_urls = faustwp_get_wp_media_urls( $wp_site_urls, $relative_upload_url ); |
54 | | - $frontend_uri = (string) faustwp_get_setting( 'frontend_uri' ) ?? '/'; |
55 | | - |
56 | | - if ( $replace_content_urls && $replace_media_urls ) { |
57 | | - return str_replace( $wp_site_urls, $frontend_uri, $content ); |
58 | | - } |
59 | | - |
60 | | - if ( $replace_media_urls ) { |
61 | | - return str_replace( $wp_media_urls, $frontend_uri . $relative_upload_url, $content ); |
62 | | - } |
63 | | - |
64 | | - $site_urls_pattern = implode( '|', array_map( 'preg_quote', $wp_site_urls ) ); |
65 | | - $pattern = '#(' . $site_urls_pattern . ')(?!' . $relative_upload_url . '(\/|$))#'; |
66 | | - |
67 | | - return preg_replace( $pattern, $frontend_uri, $content ); |
68 | 67 | } |
69 | 68 |
|
70 | 69 | /** |
|
0 commit comments