Title: get_temp_dir
Published: April 25, 2014
Last modified: February 24, 2026

---

# get_temp_dir(): string

## In this article

 * [Description](https://developer.wordpress.org/reference/functions/get_temp_dir/?output_format=md#description)
 * [Return](https://developer.wordpress.org/reference/functions/get_temp_dir/?output_format=md#return)
 * [Source](https://developer.wordpress.org/reference/functions/get_temp_dir/?output_format=md#source)
 * [Related](https://developer.wordpress.org/reference/functions/get_temp_dir/?output_format=md#related)
 * [Changelog](https://developer.wordpress.org/reference/functions/get_temp_dir/?output_format=md#changelog)

[ Back to top](https://developer.wordpress.org/reference/functions/get_temp_dir/?output_format=md#wp--skip-link--target)

Determines a writable directory for temporary files.

## 󠀁[Description](https://developer.wordpress.org/reference/functions/get_temp_dir/?output_format=md#description)󠁿

Function’s preference is the return value of `sys_get_temp_dir()`, followed by the`
upload_tmp_dir` value from `php.ini`, followed by `WP_CONTENT_DIR`, before finally
defaulting to `/tmp/`.

Note that `sys_get_temp_dir()` honors the `TMPDIR` environment variable.

In the event that this function does not find a writable location, it may be overridden
by the `WP_TEMP_DIR` constant in your `wp-config.php` file.

## 󠀁[Return](https://developer.wordpress.org/reference/functions/get_temp_dir/?output_format=md#return)󠁿

 string Writable temporary directory.

## 󠀁[Source](https://developer.wordpress.org/reference/functions/get_temp_dir/?output_format=md#source)󠁿

    ```php
    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/';
    }
    ```

[View all references](https://developer.wordpress.org/reference/files/wp-includes/functions.php/)
[View on Trac](https://core.trac.wordpress.org/browser/tags/6.9.4/src/wp-includes/functions.php#L2225)
[View on GitHub](https://github.com/WordPress/wordpress-develop/blob/6.9.4/src/wp-includes/functions.php#L2225-L2253)

## 󠀁[Related](https://developer.wordpress.org/reference/functions/get_temp_dir/?output_format=md#related)󠁿

| Uses | Description | 
| [wp_is_writable()](https://developer.wordpress.org/reference/functions/wp_is_writable/)`wp-includes/functions.php` |

Determines if a directory is writable.

  | 
| [trailingslashit()](https://developer.wordpress.org/reference/functions/trailingslashit/)`wp-includes/formatting.php` |

Appends a trailing slash.

  |

| Used by | Description | 
| [wp_generate_block_templates_export_file()](https://developer.wordpress.org/reference/functions/wp_generate_block_templates_export_file/)`wp-includes/block-template-utils.php` |

Creates an export of the current templates and template parts from the site editor at the specified path in a ZIP file.

  | 
| [wp_read_video_metadata()](https://developer.wordpress.org/reference/functions/wp_read_video_metadata/)`wp-admin/includes/media.php` |

Retrieves metadata from a video file’s ID3 tags.

  | 
| [wp_read_audio_metadata()](https://developer.wordpress.org/reference/functions/wp_read_audio_metadata/)`wp-admin/includes/media.php` |

Retrieves metadata from an audio file’s ID3 tags.

  | 
| [wp_tempnam()](https://developer.wordpress.org/reference/functions/wp_tempnam/)`wp-admin/includes/file.php` |

Returns a filename of a temporary unique file.

  | 
| [WP_Http::request()](https://developer.wordpress.org/reference/classes/wp_http/request/)`wp-includes/class-wp-http.php` |

Send an HTTP request to a URI.

  |

## 󠀁[Changelog](https://developer.wordpress.org/reference/functions/get_temp_dir/?output_format=md#changelog)󠁿

| Version | Description | 
| [2.5.0](https://developer.wordpress.org/reference/since/2.5.0/) | Introduced. |

## User Contributed Notes

You must [log in](https://login.wordpress.org/?redirect_to=https%3A%2F%2Fdeveloper.wordpress.org%2Freference%2Ffunctions%2Fget_temp_dir%2F)
before being able to contribute a note or feedback.