get_plugins
函数
get_plugins ( $plugin_folder = '' )
- 参数
-
-
(string)
$plugin_folder
Optional. Relative path to single plugin folder.- Required: 否
- Default: (empty)
-
(string)
- 返回值
-
- (array[]) Array of arrays of plugin data, keyed by plugin file name. See get_plugin_data().
- 定义位置
-
-
wp-admin/includes/plugin.php
, line 274
-
wp-admin/includes/plugin.php
- 引入
- 1.5.0
- 弃用
- –
Checks the plugins directory and retrieve all plugin files with plugin data.
WordPress only supports plugin files in the base plugins directory
(wp-content/plugins) and in one directory above the plugins directory
(wp-content/plugins/my-plugin). The file it looks for has the plugin data
and must be found in those two locations. It is recommended to keep your
plugin files in their own directories.
The file with the plugin data is the file that will be included and therefore
needs to have the main execution for the plugin. This does not mean
everything must be contained in the file and it is recommended that the file
be split for maintainability. Keep everything in one file for extreme
optimization purposes.
function get_plugins( $plugin_folder = '' ) { $cache_plugins = wp_cache_get( 'plugins', 'plugins' ); if ( ! $cache_plugins ) { $cache_plugins = array(); } if ( isset( $cache_plugins[ $plugin_folder ] ) ) { return $cache_plugins[ $plugin_folder ]; } $wp_plugins = array(); $plugin_root = WP_PLUGIN_DIR; if ( ! empty( $plugin_folder ) ) { $plugin_root .= $plugin_folder; } // Files in wp-content/plugins directory. $plugins_dir = @opendir( $plugin_root ); $plugin_files = array(); if ( $plugins_dir ) { while ( ( $file = readdir( $plugins_dir ) ) !== false ) { if ( '.' === substr( $file, 0, 1 ) ) { continue; } if ( is_dir( $plugin_root . '/' . $file ) ) { $plugins_subdir = @opendir( $plugin_root . '/' . $file ); if ( $plugins_subdir ) { while ( ( $subfile = readdir( $plugins_subdir ) ) !== false ) { if ( '.' === substr( $subfile, 0, 1 ) ) { continue; } if ( '.php' === substr( $subfile, -4 ) ) { $plugin_files[] = "$file/$subfile"; } } closedir( $plugins_subdir ); } } else { if ( '.php' === substr( $file, -4 ) ) { $plugin_files[] = $file; } } } closedir( $plugins_dir ); } if ( empty( $plugin_files ) ) { return $wp_plugins; } foreach ( $plugin_files as $plugin_file ) { if ( ! is_readable( "$plugin_root/$plugin_file" ) ) { continue; } // Do not apply markup/translate as it will be cached. $plugin_data = get_plugin_data( "$plugin_root/$plugin_file", false, false ); if ( empty( $plugin_data['Name'] ) ) { continue; } $wp_plugins[ plugin_basename( $plugin_file ) ] = $plugin_data; } uasort( $wp_plugins, '_sort_uname_callback' ); $cache_plugins[ $plugin_folder ] = $wp_plugins; wp_cache_set( 'plugins', $cache_plugins, 'plugins' ); return $wp_plugins; }
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。