wp_skip_paused_plugins()
云策文档标注
概述
wp_skip_paused_plugins() 是一个 WordPress 函数,用于过滤插件列表,移除其中已暂停的插件。它接收一个插件文件路径数组,并返回过滤后的数组,同时将暂停的插件信息存储在全局变量中。
关键要点
- 函数参数:$plugins,一个必需数组,包含插件主文件的绝对路径。
- 返回值:过滤后的插件数组,不包含任何暂停的插件。
- 核心逻辑:通过 wp_paused_plugins()->get_all() 获取暂停插件列表,遍历输入数组,使用 plugin_basename() 提取插件名称,如果匹配则移除并存储到 $GLOBALS['_paused_plugins']。
- 相关函数:wp_paused_plugins() 用于获取暂停插件实例,plugin_basename() 用于获取插件基础名称。
- 使用场景:被 wp_get_active_and_valid_plugins() 调用,以获取活动且有效的插件文件。
- 版本历史:自 WordPress 5.2.0 引入。
代码示例
function wp_skip_paused_plugins( array $plugins ) {
$paused_plugins = wp_paused_plugins()->get_all();
if ( empty( $paused_plugins ) ) {
return $plugins;
}
foreach ( $plugins as $index => $plugin ) {
list( $plugin ) = explode( '/', plugin_basename( $plugin ) );
if ( array_key_exists( $plugin, $paused_plugins ) ) {
unset( $plugins[ $index ] );
// Store list of paused plugins for displaying an admin notice.
$GLOBALS['_paused_plugins'][ $plugin ] = $paused_plugins[ $plugin ];
}
}
return $plugins;
}
原文内容
Filters a given list of plugins, removing any paused plugins from it.
Parameters
$pluginsstring[]required-
Array of absolute plugin main file paths.
Source
function wp_skip_paused_plugins( array $plugins ) {
$paused_plugins = wp_paused_plugins()->get_all();
if ( empty( $paused_plugins ) ) {
return $plugins;
}
foreach ( $plugins as $index => $plugin ) {
list( $plugin ) = explode( '/', plugin_basename( $plugin ) );
if ( array_key_exists( $plugin, $paused_plugins ) ) {
unset( $plugins[ $index ] );
// Store list of paused plugins for displaying an admin notice.
$GLOBALS['_paused_plugins'][ $plugin ] = $paused_plugins[ $plugin ];
}
}
return $plugins;
}
Changelog
| Version | Description |
|---|---|
| 5.2.0 | Introduced. |