函数文档

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.

Return

string[] Filtered array of plugins, without any paused plugins.

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.