Функция get_plugins()
позволяет получить полную информацию обо всех установленных плагинах на сайте, включая как активные, так и неактивные плагины. Данная функция полезна для администраторов и разработчиков, желающих получить данные о каждом плагине, например, имя, автора, версию, URI и описание.
get_plugins( string $plugin_folder = '' ): array[]
Функция возвращает массив, где ключом является путь к файлу плагина, а значением — массив с его данными. Поддерживаются плагины, находящиеся в папках wp-content/plugins
и wp-content/mu-plugins
.
Параметры
$plugin_folder
(строка, необязательный)
Указывает путь к конкретной папке плагина относительно директорииwp-content/plugins
.
По умолчанию:''
(возвращает все плагины в папкеwp-content/plugins
).
Возвращаемое значение
array[]
— Массив массивов с данными каждого плагина.
Особенности использования
- Функция
get_plugins()
кэширует результат, поэтому повторные вызовы выполняются быстрее. - Вне админки WordPress, например, на фронтенде, необходимо подключить файл, содержащий данную функцию:
require_once ABSPATH . 'wp-admin/includes/plugin.php';
Пример 1: Получение данных обо всех установленных плагинах
Следующий код позволяет получить массив данных обо всех установленных плагинах, включая активные и неактивные:
if ( ! function_exists( 'get_plugins' ) ) {
require_once ABSPATH . 'wp-admin/includes/plugin.php';
}
$all_plugins = get_plugins();
error_log( print_r( $all_plugins, true ) );
Этот код выведет данные о каждом плагине в лог ошибок, в формате:
Array (
[my-custom-plugin/my-plugin.php] => Array (
[Name] => My Custom Plugin
[PluginURI] => https://example.com/my-custom-plugin
[Version] => 1.0.0
[Description] => Custom functionality for my website.
[Author] => John Doe
[AuthorURI] => https://example.com
[TextDomain] => my-custom-plugin
[DomainPath] =>
[Title] => My Custom Plugin
[AuthorName] => John Doe
),
...
)
Пример 2: Получение данных конкретного плагина
Для получения данных о плагинах из определенной папки можно передать относительный путь к папке плагина в качестве параметра $plugin_folder
:
$plugin_data = get_plugins( 'specific-plugin-folder' );
if ( isset( $plugin_data['specific-plugin-folder/specific-plugin.php'] ) ) {
$plugin = $plugin_data['specific-plugin-folder/specific-plugin.php'];
echo 'Имя плагина: ' . $plugin['Name'] . '<br>';
echo 'Автор: ' . $plugin['Author'] . '<br>';
}
Этот код проверяет, активен ли плагин specific-plugin-folder/specific-plugin.php
, и выводит его имя и автора.
Пример 3: Получение всех авторов установленных плагинов
Для создания списка авторов всех установленных плагинов можно воспользоваться циклом:
if ( ! function_exists( 'get_plugins' ) ) {
require_once ABSPATH . 'wp-admin/includes/plugin.php';
}
$all_plugins = get_plugins();
$authors = array();
foreach ( $all_plugins as $plugin ) {
$authors[] = $plugin['Author'];
}
$authors = array_unique( $authors );
echo 'Авторы плагинов: ' . implode( ', ', $authors );
Этот пример выводит уникальные имена авторов всех установленных плагинов.
Пример 4: Проверка версии конкретного плагина
Можно получить версию плагина и сравнить ее с необходимым значением, чтобы проверить совместимость:
if ( ! function_exists( 'get_plugins' ) ) {
require_once ABSPATH . 'wp-admin/includes/plugin.php';
}
$plugins = get_plugins();
$plugin_path = 'custom-plugin/custom-plugin.php';
if ( isset( $plugins[ $plugin_path ] ) ) {
$version = $plugins[ $plugin_path ]['Version'];
if ( version_compare( $version, '1.2.0', '>=' ) ) {
echo 'Версия плагина Custom Plugin соответствует требованиям.';
} else {
echo 'Плагин нуждается в обновлении для корректной работы.';
}
}
Когда использовать get_plugins()
- Чтобы узнать подробную информацию обо всех установленных плагинах на сайте.
- Для проверки авторов или версий плагинов перед запуском совместимого функционала.
- Чтобы подготовить администраторский интерфейс, показывающий информацию о плагинах и их состоянии.
Заключение
Функция get_plugins()
полезна для доступа ко всем данным установленных плагинов, что особенно важно при разработке крупных проектов с зависимостями.