get_plugin_data()
Получает данные плагина (указанные в заголовках) по переданному пути на основной файл плагина.
Все данные берутся из заголовков плагина. Данные плагина должны располагаться на отдельной строке. В описании плагинов не должно быть переносов строк, иначе только часть описания будет показана. Формат заголовка такой:
/* * Plugin Name: Название * Plugin URI: Ссылка на инфо о плагине * Description: Описание * Author: Имя автора * Author URI: Ссылка на автора * Version: Версия плагина * Requires at least: 5.8 * Requires PHP: 7.4 * Text Domain: Идентификатор для данных перевода. Указывается в plugin_text_domain() * Domain Path: Путь до файла перевода. Нужен если файл не в той же папки в которой * файл с этими данными. Например, .mo файл находится в папке plugin/lang, * а файл плагина в plugin/file.php, тогда тут указываем "lang" * Network: Укажите "Network: true" для возможности активировать плагин * по все сети сайтов (для Мультисайтовой сборки). * Update URI: https://example.com/link_to_update */
Функция обрабатывает только первые 8kiB (6000-8000 символов) информации (см. get_file_data()), и если данные плагина получаются больше, то автору придется их уменьшить или переместить данные плагина наверх (некоторые авторы перед данными добавляют информацию о лицензии и т.п.).
Функция работает только в админ-панели. Кроме этого, работает не сразу, а где-то начиная с события admin_init т.е. во время событий: plugins_loaded, init, wp_loaded функция еще не определена.
В качестве альтернативы, когда нужно получить данные пораньше, можно использовать похожую функцию get_file_data().
Если $markup = true
или $translate = true
(как по умолчанию), функция косвенно вызывает wptexturize(), потенциально ломая другие плагины, если это происходит до хука init.
Хуков нет.
Возвращает
Массив
. Массив данных:
Array ( [Name] => Democracy Poll [PluginURI] => http://wp-kama.ru/id_67/democracy-poll.html [Version] => 4.5.4 [Description] => Позволяет создавать опросы. [Author] => <a href="/">Kama</a> [AuthorURI] => http://wp-kama.ru/ [AuthorName] => Kama [TextDomain] => dem [DomainPath] => languages [Network] => [Title] => <a href="/id_67/democracy-poll.html">Democracy Poll</a> [RequiresWP] => 5.5 [RequiresPHP] => 7.0 )
Мапинг срок: значение массива - это строка которая должна быть в файле, ключ - соответствует ключу возвращаемого массива:
$default_headers = array( 'Name' => 'Plugin Name', 'PluginURI' => 'Plugin URI', 'Version' => 'Version', 'Description' => 'Description', 'Author' => 'Author', 'AuthorURI' => 'Author URI', 'TextDomain' => 'Text Domain', 'DomainPath' => 'Domain Path', 'Network' => 'Network', 'RequiresWP' => 'Requires at least', 'RequiresPHP' => 'Requires PHP', 'UpdateURI' => 'Update URI', );
Использование
get_plugin_data( $plugin_file, $markup, $translate );
- $plugin_file(строка) (обязательный)
- Путь к основному файлу плагина. Пр: __FILE__.
- $markup(логический)
- Выводить HTML разметку в данных (true) или нет (false).
По умолчанию: true - $translate(логический)
- Переводить данные или нет.
По умолчанию: true
Примеры
#1 Получим данные
Пример, как можно получить данные плагина при создании плагина.
Хотя, я что-то с трудом могу представить, где это может понадобиться, поэтому пусть это будет демонстрационный пример:
add_action('admin_init', function(){ $data = get_plugin_data(__FILE__); echo $data['Name']; // выведет название плагина } );
Список изменений
С версии 1.5.0 | Введена. |
С версии 5.3.0 | Added support for Requires at least and Requires PHP headers. |
С версии 5.8.0 | Added support for Update URI header. |
С версии 6.5.0 | Added support for Requires Plugins header. |