plugin_dir_path()
Получает полный путь до папки, в которой лежит указанный файл - __FILE__. Со слэшем на конце.
Может быть использована для получения полного системного пути до каталога любого файла. Это не обязательно должен быть файл плагина.
Функция создана для удобного использования конструкции:
trailingslashit( __DIR__ );
Используйте константу WP_PLUGIN_DIR, чтобы получить путь к папке со всеми плагинами.
plugin_dir_url(__FILE__) — аналогичная функция для получения URL папки плагина.
Хуков нет.
Возвращает
Строку
. Полный путь в системе до директории в которой лежит указанный файл.
Использование
plugin_dir_path( $file );
- $file(строка) (обязательный)
- Полный путь до файла. Обычно используется волшебная константа
__FILE__
.
Примеры
#1 Получим директорию текущего файла
Предполагается, что функция вызывается из файла плагина, который называется my-plugin
:
$dir = plugin_dir_path( __FILE__ ); echo $dir; // Получим: // /home/user/var/www/wordpress/wp-content/plugins/my-plugin/
#2 Подключим все PHP файлы из под-директории плагина
Подключение всех PHP файлов из папки subfolder
, которая находится в плагине.
foreach( glob( plugin_dir_path( __FILE__ )."subfolder/*.php" ) as $file ){ include_once $file; }
#3 Получим системный путь до каталога всех плагинов
Вообще путь до каталога плагинов находится в константе WP_PLUGIN_DIR, но его также можно получить с помощью этой функции:
//current path: /home/www/site.com/wp-content/plugins/my-plugin/ $dir = plugin_dir_path( __DIR__ ); //$dir is set to /home/www/site.com/wp-content/plugins/
#4 Создадим константу для плагина
Часто удобно создать константу для плагина, в которой будет находится путь плагина и затем использовать эту константу везде в коде плагина.
Такую константу принято создавать в главном файле плагина.
// Путь до папки плагина со слэшем на конце define( 'MY_PLUGIN_PATH', plugin_dir_path( __FILE__ ) ); // используем константу где угодно в коде require_once MY_PLUGIN_PATH . 'includes/admin-page.php'; require_once MY_PLUGIN_PATH . 'includes/classes.php'; // etc.
#5 Подключение файлов по условию
Если нужно подключить разные файлы, например, для админ-панели и для фронт-энд части, то можно использовать такое условие:
if ( is_admin() ) { include_once plugin_dir_path( __FILE__ ) . 'includes/admin-functions.php'; } else { include_once plugin_dir_path( __FILE__ ) . 'includes/front-end-functions.php'; }
Список изменений
С версии 2.8.0 | Введена. |
Код plugin_dir_path() plugin dir path WP 6.7.2
function plugin_dir_path( $file ) { return trailingslashit( dirname( $file ) ); }