get_file_data()
Получает данные файла указанные в PHP комментариях файла.
Ищет метаданные в первых 8kiB (6000-8000 знаков) информации файла. Данные должны быть указаны в многострочном PHP комментарии (/*данные*/), как это делается в файлах плагина или темы. Каждая часть данных должна быть на отдельной строке. В значениях не должно быть переносов строк, потому что значение берется до первого переноса. См. пример 1.
Таким образом, если данные файла (плагина, темы) не находятся в пределах первых 8kiB, то автору плагина/темы нужно исправить свой файл и переместить заголовки данных наверх.
Определена на раннем этапе загрузки WordPress, еще до константы SHORTINIT.
Хуки из функции
Возвращает
Строку[]
. Массив полученных данных из заголовка файла в формате: Ключ => Значение
.
Использование
get_file_data( $file, $default_headers, $context );
- $file(строка) (обязательный)
- Полный путь до файла.
- $default_headers(массив) (обязательный)
Список значений, которые должна возвратить функция, в формате:
[ $field => $regex ]
, где:$field
- индекс возвращаемого массива, в котором будет найденное значение $regex.$regex
- часть регулярного выражения отвечающая за название переменной. Например, если тут указатьDescription
, то регулярка для поиска примет такой вид:'/^[ \t\/*#@]*Description:(.*)$/mi'
.
Указанное в $regex значение обрабатывается функцией preg_quote(), поэтому любые спецсимволы регулярного выражения будут экранированы.
- $context(строка)
- Если указать, то будет срабатывать хук extra_{$context}_headers, через который можно дополнить параметр $default_headers.
По умолчанию: ''
Примеры
#1 Получим данные плагина
Допустим мы создали плагин и в основном файле он имеет такие комментарии:
/* Plugin Name: Название Description: Описание Author: Kama Version: 1.0 */
Тогда, смотрите как сработает код:
// путь до основного файла плагина. // В файле его можно получить используя магическую константу __FILE__ $file = '/home/example.com/wp-content/plugins/myplugin/index.php'; $get_headers = [ 'ver' => 'Version', 'author' => 'Author', 'name' => 'Plugin Name', 'foo' => 'bar' ]; $data = get_file_data( $file, $get_headers ); /* $data будет содержать: Array ( [ver] => 1.0 [author] => Kama [name] => Название [foo] => ) */
#2 Динамическая версия плагина
Допустим мы пишем плагин и у нас есть Константа PLUGIN_VERSION. Каждый раз, при смене версии плагина в комментариях, нам нужно не забыть поменять её в константе. Это неудобство можно обойти использовав эту функцию. Для этого в самом начале плагина под комментариями используем функцию:
/* Plugin Name: Название плагина Plugin URI: http://wp-kama.ru Description: Описание плагина Author: Kama Version: 1.0 */ $data = get_file_data( __FILE__, ['ver'=>'Version'] ); define( 'PLUGIN_VERSION', $data['ver'] );
Список изменений
С версии 2.9.0 | Введена. |