# get_plugins()

URL: https://chugunov.pro/api-wordpress/functions/get_plugins/
Проверено на WordPress 6.9, обновлено 06.08.2026.
Источник: независимый русскоязычный справочник chugunov.pro. Не является официальной документацией WordPress.

Тип: функция.
Появился в версии: 1.5.0.

## Сигнатура

```php
get_plugins( string $plugin_folder = '' ): array[]
```

## Описание

WordPress поддерживает файлы плагинов только в базовом каталоге плагинов (wp-content/plugins) и на один уровень ниже каталога плагинов (wp-content/plugins/my-plugin). Искомый файл содержит данные плагина и должен находиться в одном из этих двух мест. Рекомендуется хранить файлы плагина в отдельных каталогах.
Файл с данными плагина — это тот файл, который будет подключён, поэтому он должен содержать основной исполняемый код плагина. Это не значит, что всё должно находиться в одном файле; для удобства сопровождения файл рекомендуется разделять. Держите всё в одном файле только в целях предельной оптимизации.

## Параметры

- `$plugin_folder` `string` — необязательный, по умолчанию `''`. Относительный путь к папке отдельного плагина.

## Возвращаемое значение

`array[]` — get_plugin_data()

## Исходный код

Файл: `wp-admin/includes/plugin.php:279`

```php
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 ( str_starts_with( $file, '.' ) ) {
				continue;
			}

			if ( is_dir( $plugin_root . '/' . $file ) ) {
				$plugins_subdir = @opendir( $plugin_root . '/' . $file );

				if ( $plugins_subdir ) {
					while ( ( $subfile = readdir( $plugins_subdir ) ) !== false ) {
						if ( str_starts_with( $subfile, '.' ) ) {
							continue;
						}

						if ( str_ends_with( $subfile, '.php' ) ) {
							$plugin_files[] = "$file/$subfile";
						}
					}

					closedir( $plugins_subdir );
				}
			} elseif ( str_ends_with( $file, '.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;
		}

		// 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;
}
```

## История изменений

- 1.5.0 — Introduced.

## Связанные

Использует: [`get_plugin_data`](https://chugunov.pro/api-wordpress/functions/get_plugin_data/), [`wp_cache_set`](https://chugunov.pro/api-wordpress/functions/wp_cache_set/), [`plugin_basename`](https://chugunov.pro/api-wordpress/functions/plugin_basename/), [`wp_cache_get`](https://chugunov.pro/api-wordpress/functions/wp_cache_get/).
Используется в: `WP_Debug_Data::get_wp_plugins_raw_data`, `WP_Plugin_Dependencies::get_plugins`, `WP_REST_Templates_Controller::get_wp_templates_author_text_field`, [`wp_get_plugin_action_button`](https://chugunov.pro/api-wordpress/functions/wp_get_plugin_action_button/), `WP_REST_Block_Directory_Controller::find_plugin_for_slug`, `WP_REST_Plugins_Controller::get_plugin_data`, `WP_REST_Plugins_Controller::get_items`, `Plugin_Installer_Skin::do_overwrite`, [`wp_ajax_toggle_auto_updates`](https://chugunov.pro/api-wordpress/functions/wp_ajax_toggle_auto_updates/), `WP_Recovery_Mode_Email_Service::get_plugin`, `WP_Site_Health::get_test_plugin_version`, [`do_block_editor_incompatible_meta_box`](https://chugunov.pro/api-wordpress/functions/do_block_editor_incompatible_meta_box/), [`_get_plugin_from_callback`](https://chugunov.pro/api-wordpress/functions/_get_plugin_from_callback/), [`wp_edit_theme_plugin_file`](https://chugunov.pro/api-wordpress/functions/wp_edit_theme_plugin_file/), [`wp_ajax_update_plugin`](https://chugunov.pro/api-wordpress/functions/wp_ajax_update_plugin/), `Language_Pack_Upgrader::get_name_for_update`, `Plugin_Upgrader::plugin_info`, `WP_Plugins_List_Table::prepare_items`, [`get_plugin_updates`](https://chugunov.pro/api-wordpress/functions/get_plugin_updates/), [`install_plugin_install_status`](https://chugunov.pro/api-wordpress/functions/install_plugin_install_status/), [`wp_dashboard_plugins_output`](https://chugunov.pro/api-wordpress/functions/wp_dashboard_plugins_output/), [`validate_plugin`](https://chugunov.pro/api-wordpress/functions/validate_plugin/), [`wp_link_manager_disabled_message`](https://chugunov.pro/api-wordpress/functions/wp_link_manager_disabled_message/), [`wp_update_plugins`](https://chugunov.pro/api-wordpress/functions/wp_update_plugins/).

Оригинал в официальной документации: https://developer.wordpress.org/reference/functions/get_plugins/
