get_plugins()
get_plugins( string $plugin_folder = ” ) 检查plugins目录并检索…
get_plugins( string $plugin_folder = ” )
检查plugins目录并检索包含插件数据的所有插件文件。
Check the plugins directory and retrieve all plugin files with plugin data.
目录锚点:#说明#参数#返回#源码#笔记
说明(Description)
WordPress只支持基本插件目录(wp content/plugins)和插件目录(wp content/plugins/my plugin)上面的一个目录中的插件文件。它查找的文件包含插件数据,必须在这两个位置找到。建议将插件文件保存在它们自己的目录中。
包含插件数据的文件是将包含的文件,因此需要对插件进行主执行。这并不意味着所有内容都必须包含在文件中,建议将文件拆分以便于维护。将所有内容保存在一个文件中,以达到极端优化的目的。
参数(Parameters)
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
$plugin_folder | (string) | 可选 | 单个插件文件夹的相对路径。 |
返回(Return)
(array[])插件数据数组,由插件文件名键入。请参阅get_plugin_data(array[])。
源码(Source)
/** * Check 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. * * @since 1.5.0 * * @param string $plugin_folder Optional. Relative path to single plugin folder. * @return array Key is the plugin file path and the value is an array of the plugin data. */ function get_plugins($plugin_folder = '') { if ( ! $cache_plugins = wp_cache_get('plugins', '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 ( substr($subfile, -4) == '.php' ) $plugin_files[] = "$file/$subfile"; } closedir( $plugins_subdir ); } } else { if ( substr($file, -4) == '.php' ) $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; $plugin_data = get_plugin_data( "$plugin_root/$plugin_file", false, false ); //Do not apply markup/translate as it'll be cached. 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; }
更新版本 | 源码位置 | 使用 | 被使用 |
---|---|---|---|
1.5.0 | wp-admin/includes/plugin.php:278 | 15 | 4 |
笔记(Notes)
获取所有插件
结果在函数第一次运行时缓存,因此建议至少在“after_setup_theme”操作之后调用该函数,以便插件和主题能够筛选结果。
类别:WordPress 函数手册、
本文收集自互联网,转载请注明来源。
如有侵权,请联系 wper_net@163.com 删除。
还没有任何评论,赶紧来占个楼吧!