Make WordPress Core


Ignore:
Timestamp:
03/18/2017 03:53:59 AM (8 years ago)
Author:
rachelbaker
Message:

Themes: Add filter for excluding directories from being scanned for template files.

Exclude 'node_modules' directories from paths searched in WP_Theme::scandir(). Introduces the theme_scandir_exclusions filter to allow sites to exclude any other paths like bower_components or vendor from being searched for template files.

Props lukasbesch, dd32, swisspidy, rachelbaker.
Fixes #38292.

File:
1 edited

Legend:

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

    r39807 r40301  
    11561156        $files = array();
    11571157
     1158        /**
     1159         * Filters the array of excluded directories and files while scanning theme folder.
     1160         *
     1161         * @since 4.7.4
     1162         *
     1163         * @param array $exclusions Array of excluded directories and files.
     1164         */
     1165        $exclusions = (array) apply_filters( 'theme_scandir_exclusions', array( 'CVS', 'node_modules' ) );
     1166
    11581167        foreach ( $results as $result ) {
    1159             if ( '.' == $result[0] )
     1168            if ( '.' == $result[0] || in_array( $result, $exclusions, true ) ) {
    11601169                continue;
     1170            }
    11611171            if ( is_dir( $path . '/' . $result ) ) {
    1162                 if ( ! $depth || 'CVS' == $result )
     1172                if ( ! $depth )
    11631173                    continue;
    11641174                $found = self::scandir( $path . '/' . $result, $extensions, $depth - 1 , $relative_path . $result );
Note: See TracChangeset for help on using the changeset viewer.