Make WordPress Core


Ignore:
Timestamp:
02/29/2024 10:15:20 AM (2 years ago)
Author:
youknowriad
Message:

Editor: Prevent infinite loops when filtering the font library folder.

Changing the font library is something we expect hosts to perform.
It's important that we make this filter as seemless as possible.
This commit prevents a potential infinite loop caused by calling wp_get_upload_dir() within the font_dir filter.

Props mmaattiiaass, ironprogrammer, costdev, swissspidy.
Fixes #60652.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/wp-includes/fonts.php

    r57720 r57740  
    9797 * @since 6.5.0
    9898 *
    99  * @param array $defaults {
     99 * @return array $defaults {
    100100 *     Array of information about the upload directory.
    101101 *
     
    107107 *     @type string|false $error   False or error message.
    108108 * }
    109  * @return array $defaults {
    110  *     Array of information about the upload directory.
    111  *
    112  *     @type string       $path    Base directory and subdirectory or full path to the fonts upload directory.
    113  *     @type string       $url     Base URL and subdirectory or absolute URL to the fonts upload directory.
    114  *     @type string       $subdir  Subdirectory
    115  *     @type string       $basedir Path without subdir.
    116  *     @type string       $baseurl URL path without subdir.
    117  *     @type string|false $error   False or error message.
    118  * }
    119  */
    120 function wp_get_font_dir( $defaults = array() ) {
     109 */
     110function wp_get_font_dir() {
    121111        $site_path = '';
    122112        if ( is_multisite() && ! ( is_main_network() && is_main_site() ) ) {
     
    124114        }
    125115
    126         // Sets the defaults.
    127         $defaults['path']    = path_join( WP_CONTENT_DIR, 'fonts' ) . $site_path;
    128         $defaults['url']     = untrailingslashit( content_url( 'fonts' ) ) . $site_path;
    129         $defaults['subdir']  = '';
    130         $defaults['basedir'] = path_join( WP_CONTENT_DIR, 'fonts' ) . $site_path;
    131         $defaults['baseurl'] = untrailingslashit( content_url( 'fonts' ) ) . $site_path;
    132         $defaults['error']   = false;
     116        $defaults = array(
     117                'path'    => path_join( WP_CONTENT_DIR, 'fonts' ) . $site_path,
     118                'url'     => untrailingslashit( content_url( 'fonts' ) ) . $site_path,
     119                'subdir'  => '',
     120                'basedir' => path_join( WP_CONTENT_DIR, 'fonts' ) . $site_path,
     121                'baseurl' => untrailingslashit( content_url( 'fonts' ) ) . $site_path,
     122                'error'   => false,
     123        );
    133124
    134125        /**
Note: See TracChangeset for help on using the changeset viewer.