Make WordPress Core

Ticket #48713: 48713.diff

File 48713.diff, 2.7 KB (added by desrosj, 4 years ago)
  • src/wp-content/themes/twentytwenty/classes/class-twentytwenty-svg-icons.php

     
    2929                        } else {
    3030                                $arr = array();
    3131                        }
     32
     33                        /**
     34                         * Filters Twenty Twenty's array of icons.
     35                         *
     36                         * The dynamic portion of the hook name, `$group`, refers to
     37                         * the name of the group of icons, either "ui" or "social".
     38                         *
     39                         * @since 1.5.0
     40                         *
     41                         * @param array $arr Array of icons.
     42                         */
     43                        $arr = apply_filters( "twentytwenty_svg_icons_{$group}", $arr );
     44
     45                        /**
     46                         * Filters an SVG icon's color.
     47                         *
     48                         * @since 1.5.0
     49                         *
     50                         * @param array $color The icon color.
     51                         * @param array $icon  The icon name.
     52                         * @param array $group The icon group.
     53                         */
     54                        $color = apply_filters( 'twentytwenty_svg_icon_color', $color, $icon, $group );
     55
    3256                        if ( array_key_exists( $icon, $arr ) ) {
    3357                                $repl = '<svg class="svg-icon" aria-hidden="true" role="img" focusable="false" ';
    3458                                $svg  = preg_replace( '/^<svg /', $repl, trim( $arr[ $icon ] ) ); // Add extra attributes to SVG code.
     
    5175                        static $regex_map; // Only compute regex map once, for performance.
    5276                        if ( ! isset( $regex_map ) ) {
    5377                                $regex_map = array();
    54                                 $map       = &self::$social_icons_map; // Use reference instead of copy, to save memory.
    55                                 foreach ( array_keys( self::$social_icons ) as $icon ) {
     78
     79                                /**
     80                                 * Filters Twenty Twenty's array of domain mappings for social icons.
     81                                 *
     82                                 * By default, each Icon ID is matched against a .com TLD. To override this behavior,
     83                                 * specify all the domains it covers (including the .com TLD too, if applicable).
     84                                 *
     85                                 * @since 1.5.0
     86                                 *
     87                                 * @param array $social_icons_map Array of default social icons.
     88                                 */
     89                                $map = apply_filters( 'twentytwenty_social_icons_map', self::$social_icons_map );
     90
     91                                /**
     92                                 * Filters Twenty Twenty's array of social icons.
     93                                 *
     94                                 * @since 1.5.0
     95                                 *
     96                                 * @param array $social_icons Array of default social icons.
     97                                 */
     98                                $social_icons = apply_filters( 'twentytwenty_svg_icons_social', self::$social_icons );
     99
     100                                foreach ( array_keys( $social_icons ) as $icon ) {
    56101                                        $domains            = array_key_exists( $icon, $map ) ? $map[ $icon ] : array( sprintf( '%s.com', $icon ) );
    57102                                        $domains            = array_map( 'trim', $domains ); // Remove leading/trailing spaces, to prevent regex from failing to match.
    58103                                        $domains            = array_map( 'preg_quote', $domains );