path_join()WP 2.5.0

Объединяет (склеивает) два переданных системных пути. Если второй путь абсолютный (начинается со слэша), то просто вернет его.

Логика такая: дай мне $path относительно $base, но если $path абсолютный, то просто верни его...

При склейке добавляет слэш / между путями.

Работает на основе: path_is_absolute()
1 раз — 0.000061 сек (очень быстро) | 50000 раз — 0.05 сек (скорость света) | PHP 7.1.1, WP 4.7.2

Хуков нет.

Возвращает

Строку. Склеенный или нет абсолютный путь.

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

path_join( $base, $path );
$base(string)
Базовый путь, который должен быть в начале $path.
$path(string)
Путь от $base.

Примеры

0

#1 Демонстрация склейки двух путей.

echo path_join('/var/example.com', '/wp_content/uploads'); //> /wp_content/uploads
echo path_join('/var/example.com', 'wp_content/uploads');  //> /var/example.com/wp_content/uploads
echo path_join('/var/example.com', '');                    //> /var/example.com/
echo path_join('/var/example.com', '\path');               //> \path
echo path_join('/var/example.com', 'c:\path');            //> c:\path
0

#2 Подключим файл

Допустим мы заранее не знаем как будет передаваться файл: абсолютным путем или просто его название. В таком случае пригодится эта функция... Если указано имя файла, то к нему будет добавлена база (путь), если указан полный путь файла, то ничего не будет добавлено:

$path = path_join( '/var/site/wp-content/', $file );
require_once( $path );

Теперь, $file может быть: file.php или /var/site/wp-content/file.php. В обоих случаях вернется путь до файла: /var/site/wp-content/file.php

Список изменений

С версии 2.5.0 Введена.

Код path_join() WP 6.6.2

function path_join( $base, $path ) {
	if ( path_is_absolute( $path ) ) {
		return $path;
	}

	return rtrim( $base, '/' ) . '/' . $path;
}