get_file_data()
Отримує дані файлу, зазначені в PHP коментарях файлу.
Шукає метадані у перших 8kiB (6000-8000 знаків) інформації файлу. Дані мають бути вказані в багаторядковому PHP коментарі ( /*дані*/ ), як це робиться у файлах плагіна або теми. Кожна частина даних має бути на окремому рядку. У значеннях не повинно бути перенесення рядків, тому що значення береться до першого перенесення. Див. Приклад 1.
Таким чином, якщо дані файлу (плагіна, теми) не знаходяться в межах перших 8kiB, автору плагіна/теми потрібно виправити свій файл і перемістити заголовки даних нагору.
Визначено на ранньому етапі завантаження WordPress, ще до константи SHORTINIT .
(швидкість світла) | 50000 разів – 0.61 сек
(дуже швидко) |
PHP 7.4.8, WP 5.6
Хуки з функції
Повертає
Строку[]
. Масив отриманих даних із заголовка файлу у форматі: Ключ => Значение
.
Використання
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: Опис Автор: 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: Опис плагіна Автор: Kama Version: 1.0 */ $data = get_file_data( __FILE__, ['ver'=>'Version'] ); define( 'PLUGIN_VERSION', $data['ver'] );
список змін
З версії 2.9.0 | Введено. |