get_temp_dir()WP 2.5.0

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

Папка временных файлов подбирается в следующей очередности (возвращается первая папка для которой есть право на запись):

  1. Константа WP_TEMP_DIR. Если в этой константе определить путь до временной папке, то будет использован он. По умолчанию эта константа в ВП не определена. Константу нужно определять в файле wp-config.php.
  2. PHP функция sys_get_temp_dir() - возвращает путь до временной папки на сервере.
  3. PHP опция ini_get('upload_tmp_dir') - содержит путь до временной папки на сервере.
  4. Константа WP_CONTENT_DIR - содержит путь до папки контента ВП.
  5. /tmp/ - жестко указанный путь до папки на сервере.

Каждая папка сначала проверяется на возможность записать в нее файл, через wp_is_writable().

Для создания временного файла во временной папке, используйте wp_tempnam()

1 раз — 0.00001 сек (скорость света) | 50000 раз — 0.03 сек (скорость света) | PHP 7.1.11, WP 4.9.5

Хуков нет.

Возвращает

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

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

$temp_dir = get_temp_dir();

Примеры

0

#1 Получим путь временной папки

echo get_temp_dir(); // /server/tmp/
0

#2 Создаем каталог my_test во временном каталоге, если он еще не существует

$my_tmp_dir = get_temp_dir() . '/my_test';
if( ! is_dir($my_tmp_dir) ){
	mkdir( $my_tmp_dir );
}

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

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

Код get_temp_dir() WP 6.5.2

function get_temp_dir() {
	static $temp = '';
	if ( defined( 'WP_TEMP_DIR' ) ) {
		return trailingslashit( WP_TEMP_DIR );
	}

	if ( $temp ) {
		return trailingslashit( $temp );
	}

	if ( function_exists( 'sys_get_temp_dir' ) ) {
		$temp = sys_get_temp_dir();
		if ( @is_dir( $temp ) && wp_is_writable( $temp ) ) {
			return trailingslashit( $temp );
		}
	}

	$temp = ini_get( 'upload_tmp_dir' );
	if ( @is_dir( $temp ) && wp_is_writable( $temp ) ) {
		return trailingslashit( $temp );
	}

	$temp = WP_CONTENT_DIR . '/';
	if ( is_dir( $temp ) && wp_is_writable( $temp ) ) {
		return $temp;
	}

	return '/tmp/';
}