$value ) { $content[ $key ] = self::relative_url( $value ); } } elseif ( is_object( $content ) ) { foreach ( $content as $key => $value ) { $content->$key = self::relative_url( $value ); } } elseif ( is_string( $content ) ) { if ( self::$wpurl === self::$url ) { // doesn't matter which url gets used $content = str_replace( self::$url, '/', $content ); } elseif ( 0 === strpos( self::$wpurl, self::$url ) ) { // replace wp url first $content = str_replace( self::$wpurl, '/', $content ); $content = str_replace( self::$url, '/', $content ); } else { // replace site url first $content = str_replace( self::$url, '/', $content ); $content = str_replace( self::$wpurl, '/', $content ); } } return $content; } // relative_url // Add domain to urls when displaying/editing content public static function absolute_url( $content ) { if ( is_array( $content ) ) { foreach ( $content as $key => $value ) { $content[ $key ] = self::absolute_url( $value ); } } elseif ( is_object( $content ) ) { foreach ( $content as $key => $value ) { $content->$key = self::absolute_url( $value ); } } elseif ( is_string( $content ) ) { $delim = chr(127); // content is a url field, not prefixed with 'src' or 'href' if ( 0 === strpos( $content, '/' . self::$upload_path ) ) { $content = self::$wpurl . substr( $content, 1 ); } else { // regular content // do wpurl first, look for 'src', 'href', 'srcset' and ', ' followed by upload path $content = preg_replace( $delim . '(src="|href="|srcset="|, )/' . self::$upload_path . $delim, '${1}' . self::$wpurl . self::$upload_path, $content ); // now do url, just 'href' not followed by upload path $content = str_replace( 'href="/', 'href="' . self::$url, $content ); } } return $content; } // absolute_url } of_absolute_relative_urls::init(); }