$args ]; } $args = wp_parse_args( $args, [ 'path' => '', 'slug' => '', 'readme' => false, 'headers' => false, 'plugin_file' => false, 'files' => [], ] ); $args['path'] = trailingslashit( $args['path'] ); $args['slug'] = $args['slug'] ?: basename( $args['path'] ); $top_level_files = glob( $args['path'] . '*' ); if ( ! $args['headers'] ) { $php_files = preg_grep( '!\.php$!i', $top_level_files ); foreach ( $php_files as $plugin_file ) { $file_headers = get_plugin_data( $plugin_file, false, false ); if ( ! empty( $file_headers['Name'] ) ) { $args['headers'] = $file_headers; $args['plugin_file'] = $plugin_file; break; } } } if ( ! $args['readme'] ) { $readme_files = preg_grep( '!(^|/)readme.(txt|md)$!i', $top_level_files ); if ( $readme_files ) { $args['readme'] = new Readme_Parser( array_shift( $readme_files ) ); } } if ( ! $args['files'] ) { $args['files'] = []; foreach ( new \RecursiveIteratorIterator( new \RecursiveDirectoryIterator( $args['path'] ) ) as $file ) { if ( $file->isFile() ) { $args['files'][] = substr( $file->getPathname(), strlen( $args['path'] ) ); } } sort( $args['files'] ); } return Checks\Check_Base::run_checks( $args ) ?: true; }