diff --git a/lib/experimental/fonts/font-library/class-wp-font-library.php b/lib/experimental/fonts/font-library/class-wp-font-library.php index 47ec854a965fcb..37b1ff5c6e7f0a 100644 --- a/lib/experimental/fonts/font-library/class-wp-font-library.php +++ b/lib/experimental/fonts/font-library/class-wp-font-library.php @@ -98,6 +98,14 @@ public static function get_font_collection( $id ) { return new WP_Error( 'font_collection_not_found', 'Font collection not found.' ); } + private static function get_multi_site_font_sub_dir() { + $font_sub_dir = ''; + if ( is_multisite() && ! ( is_main_network() && is_main_site() ) ) { + $font_sub_dir = '/sites/' . get_current_blog_id(); + } + return $font_sub_dir; + } + /** * Gets the upload directory for fonts. * @@ -106,7 +114,9 @@ public static function get_font_collection( $id ) { * @return string Path of the upload directory for fonts. */ public static function get_fonts_dir() { - return ( defined( 'WP_FONT_DIR' ) && ! empty( WP_FONT_DIR ) ) ? WP_FONT_DIR : path_join( WP_CONTENT_DIR, 'fonts' ); + $base_font_dir = ( defined( 'WP_FONT_DIR' ) && ! empty( WP_FONT_DIR ) ) ? WP_FONT_DIR : path_join( WP_CONTENT_DIR, 'fonts' ); + $font_sub_dir = self::get_multi_site_font_sub_dir(); + return rtrim( $base_font_dir, '/' ) . $font_sub_dir; } /** @@ -123,10 +133,11 @@ public static function get_fonts_dir() { * @return array Modified upload directory. */ public static function set_upload_dir( $defaults ) { - $font_url = ( defined( 'WP_FONT_URL' ) && ! empty( WP_FONT_URL ) ) ? set_url_scheme( WP_FONT_URL ) : content_url( 'fonts' ); + $font_url = ( defined( 'WP_FONT_URL' ) && ! empty( WP_FONT_URL ) ) ? set_url_scheme( WP_FONT_URL ) : content_url( 'fonts' ); + $font_sub_dir = self::get_multi_site_font_sub_dir(); $defaults['path'] = self::get_fonts_dir(); - $defaults['url'] = untrailingslashit( $font_url ); + $defaults['url'] = untrailingslashit( $font_url ) . $font_sub_dir; return $defaults; }