WordPress как на ладони
Недорогой хостинг для сайтов на WordPress: wordpress.jino.ru

plugin_dir_path() WP 2.8

Получает полный путь до папки, в которой лежит указанный файл - __FILE__. Со слэшем на конце.

Может быть использована для получения полного системного пути до каталога любого файла. Это не обязательно должен быть файл плагина.

Функция создана для удобного использования конструкции:

trailingslashit( __DIR__ );

Используйте константу WP_PLUGIN_DIR, чтобы получить путь к папке со всеми плагинами.

plugin_dir_url(__FILE__) — аналогичная функция для получения URL папки плагина.

1 раз — 0.000024 сек (очень быстро) | 50000 раз — 0.08 сек (скорость света)

Хуков нет.

Возвращает

Строку. Полный путь в системе до директории в которой лежит указанный файл.

Использование

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() WP 5.9

function plugin_dir_path( $file ) {
	return trailingslashit( dirname( $file ) );
}

path directory (путь папка)

Плагины, хуки

4 коммента
    Войти