wp_delete_attachment_files( int $post_id, array $meta, array $backup_sizes, string $file ): bool
- Since
- 4.9.7
- Source
wp-includes/post.php:6918
Compatibility
- WordPress
- since 4.9.7
- PHP
- 7.4–8.6-dev
- 6.7.7
- 6.8.8
- 6.9.7
- 7.0.4
- 7.1.0
Present in every tracked release (6.7.7 to 7.1.0), and compiles on PHP 7.4 through 8.6-dev.
Parameters
$post_idint- Attachment ID.
$metaarray- The attachment's meta data.
$backup_sizesarray- The meta data for the attachment's backup images.
$filestring- Absolute path to the attachment's file.
Return value
bool- True on success, false on failure.
Performance profile
How much work a call to wp_delete_attachment_files() does, and what it touches: the algorithmic scaling, the Zend instruction count per call across PHP versions, the hooks it hands control to, and the core code that calls it. Measured from the compiled opcodes, not a stopwatch, so every number is identical on any machine running the same PHP version, and every function in core is ranked by cost.
- Cost class
- Heavy
- Scaling
- Scales with input
- Instructions
- 29–130
- Plugin surface
- None
- Called by
- 1
Reaches the database via ->get_row().
The body loops, so the work grows with what you pass in.
Executed per call on PHP 8.5, depending on the branch taken. The body compiles to 259.
Nothing here hands control to plugin code.
1 place in core call this, so the cost is paid more often than your own code shows.
What it touches
- sqldatabase query
->get_row()called directly
Further down the call graph this can also reach hook, option, cache, serialize, query and transient. Those are the worst case, several calls deep and usually down an error path, not what a normal call pays.
What one call costs · 105 distinct outcomes
One number would be a lie: the work depends on which branch runs. These are every distinct cost wp_delete_attachment_files() can have, taken from its control-flow graph on PHP 8.5.
| When | Instructions | Calls it makes |
|---|---|---|
empty($meta) && !is_array($backup_sizes) | 29–37 | wp_get_upload_dir(), wp_delete_file_from_directory() |
!empty($intermediate_dir) && !is_array($backup_sizes) | 39–47 | wp_get_upload_dir(), wp_basename(), wp_delete_file_from_directory() |
empty($meta) | 40–49 | wp_get_upload_dir(), path_join(), wp_delete_file_from_directory() |
!is_array($backup_sizes) | 47–59 | wp_get_upload_dir(), path_join(), wp_basename(), wp_delete_file_from_directory() |
->get_row() && !is_array($backup_sizes) | 49–57 | wp_get_upload_dir(), ->esc_like(), ->prepare(), ->get_row(), wp_delete_file_from_directory() |
!empty($intermediate_dir) && is_array($backup_sizes) | 50–59 | wp_get_upload_dir(), wp_basename(), path_join(), wp_delete_file_from_directory() |
!empty($intermediate_dir) && !is_array($backup_sizes) | 51–60 | wp_get_upload_dir(), wp_basename(), path_join(), wp_delete_file_from_directory(), wp_delete_file_from_directory() |
!empty($intermediate_dir) && empty($original_image) && empty($source_image) && !is_array($backup_sizes) | 52–57 | wp_get_upload_dir(), wp_basename(), wp_basename(), wp_delete_file_from_directory() |
empty($meta) && isset($meta) && is_array($backup_sizes) | 54–61 | wp_get_upload_dir(), path_join(), path_join(), wp_delete_file_from_directory() |
is_array($backup_sizes) | 58–71 | wp_get_upload_dir(), path_join(), wp_basename(), path_join(), wp_delete_file_from_directory() |
!is_array($backup_sizes) | 59–72 | wp_get_upload_dir(), path_join(), wp_basename(), path_join(), wp_delete_file_from_directory(), wp_delete_file_from_directory() |
!empty($meta) && ->get_row() && !empty($intermediate_dir) && !is_array($backup_sizes) | 59–67 | wp_get_upload_dir(), ->esc_like(), ->prepare(), ->get_row(), wp_basename(), wp_delete_file_from_directory() |
93 further outcomes, up to 130 instructions
empty($original_image) && empty($source_image) && !is_array($backup_sizes) | 60–65 | wp_get_upload_dir(), wp_basename(), path_join(), wp_basename(), wp_delete_file_from_directory() |
empty($original_image) && !empty($intermediate_dir) && empty($source_image) && !is_array($backup_sizes) | 60–69 | wp_get_upload_dir(), path_join(), wp_basename(), wp_basename(), wp_delete_file_from_directory() |
->get_row() && is_array($backup_sizes) | 60–69 | wp_get_upload_dir(), ->esc_like(), ->prepare(), ->get_row(), path_join(), wp_delete_file_from_directory() |
isset($meta) && empty($intermediate_dir) && !is_array($backup_sizes) | 61–67 | wp_get_upload_dir(), path_join(), path_join(), wp_basename(), wp_delete_file_from_directory() |
!empty($intermediate_dir) && is_array($backup_sizes) | 62–72 | wp_get_upload_dir(), wp_basename(), path_join(), wp_delete_file_from_directory(), path_join(), wp_delete_file_from_directory() |
!empty($intermediate_dir) && empty($original_image) && empty($source_image) && is_array($backup_sizes) | 63–69 | wp_get_upload_dir(), wp_basename(), wp_basename(), path_join(), wp_delete_file_from_directory() |
!empty($intermediate_dir) && empty($original_image) && !empty($source_image) && !is_array($backup_sizes) | 64–70 | wp_get_upload_dir(), wp_basename(), wp_basename(), path_join(), wp_delete_file_from_directory(), wp_delete_file_from_directory() |
!empty($intermediate_dir) && !empty($original_image) && empty($source_image) && !is_array($backup_sizes) | 64–70 | wp_get_upload_dir(), wp_basename(), path_join(), wp_delete_file_from_directory(), wp_basename(), wp_delete_file_from_directory() |
!empty($meta) && ->get_row() && empty($intermediate_dir) && !is_array($backup_sizes) | 67–75 | wp_get_upload_dir(), ->esc_like(), ->prepare(), ->get_row(), path_join(), wp_basename(), wp_delete_file_from_directory() |
empty($intermediate_dir) && empty($original_image) && empty($source_image) && !is_array($backup_sizes) | 68–77 | wp_get_upload_dir(), path_join(), wp_basename(), path_join(), wp_basename(), wp_delete_file_from_directory() |
is_array($backup_sizes) | 70–84 | wp_get_upload_dir(), path_join(), wp_basename(), path_join(), wp_delete_file_from_directory(), path_join(), wp_delete_file_from_directory() |
!empty($meta) && ->get_row() && !empty($intermediate_dir) && is_array($backup_sizes) | 70–79 | wp_get_upload_dir(), ->esc_like(), ->prepare(), ->get_row(), wp_basename(), path_join(), wp_delete_file_from_directory() |
empty($original_image) && empty($source_image) && is_array($backup_sizes) | 71–77 | wp_get_upload_dir(), wp_basename(), path_join(), wp_basename(), path_join(), wp_delete_file_from_directory() |
empty($original_image) && !empty($intermediate_dir) && empty($source_image) && is_array($backup_sizes) | 71–81 | wp_get_upload_dir(), path_join(), wp_basename(), wp_basename(), path_join(), wp_delete_file_from_directory() |
!empty($meta) && ->get_row() && !empty($intermediate_dir) && !is_array($backup_sizes) | 71–80 | wp_get_upload_dir(), ->esc_like(), ->prepare(), ->get_row(), wp_basename(), path_join(), wp_delete_file_from_directory(), wp_delete_file_from_directory() |
isset($meta) && empty($intermediate_dir) && is_array($backup_sizes) | 72–79 | wp_get_upload_dir(), path_join(), path_join(), wp_basename(), path_join(), wp_delete_file_from_directory() |
empty($original_image) && !empty($source_image) && !is_array($backup_sizes) | 72–78 | wp_get_upload_dir(), wp_basename(), path_join(), wp_basename(), path_join(), wp_delete_file_from_directory(), wp_delete_file_from_directory() |
!empty($original_image) && empty($source_image) && !is_array($backup_sizes) | 72–78 | wp_get_upload_dir(), wp_basename(), path_join(), wp_delete_file_from_directory(), path_join(), wp_basename(), wp_delete_file_from_directory() |
empty($original_image) && !empty($intermediate_dir) && !empty($source_image) && !is_array($backup_sizes) | 72–82 | wp_get_upload_dir(), path_join(), wp_basename(), wp_basename(), path_join(), wp_delete_file_from_directory(), wp_delete_file_from_directory() |
!empty($original_image) && !empty($intermediate_dir) && empty($source_image) && !is_array($backup_sizes) | 72–82 | wp_get_upload_dir(), path_join(), wp_basename(), path_join(), wp_delete_file_from_directory(), wp_basename(), wp_delete_file_from_directory() |
!empty($meta) && ->get_row() && !empty($intermediate_dir) && empty($original_image) && empty($source_image) && !is_array($backup_sizes) | 72–77 | wp_get_upload_dir(), ->esc_like(), ->prepare(), ->get_row(), wp_basename(), wp_basename(), wp_delete_file_from_directory() |
isset($meta) && empty($intermediate_dir) && !is_array($backup_sizes) | 73–80 | wp_get_upload_dir(), path_join(), path_join(), wp_basename(), path_join(), wp_delete_file_from_directory(), wp_delete_file_from_directory() |
isset($meta) && empty($original_image) && empty($source_image) && !is_array($backup_sizes) | 74–77 | wp_get_upload_dir(), path_join(), path_join(), wp_basename(), wp_basename(), wp_delete_file_from_directory() |
!empty($intermediate_dir) && empty($original_image) && !empty($source_image) && is_array($backup_sizes) | 75–82 | wp_get_upload_dir(), wp_basename(), wp_basename(), path_join(), wp_delete_file_from_directory(), path_join(), wp_delete_file_from_directory() |
!empty($intermediate_dir) && !empty($original_image) && empty($source_image) && is_array($backup_sizes) | 75–82 | wp_get_upload_dir(), wp_basename(), path_join(), wp_delete_file_from_directory(), wp_basename(), path_join(), wp_delete_file_from_directory() |
!empty($intermediate_dir) && !empty($original_image) && !empty($source_image) && !is_array($backup_sizes) | 76–83 | wp_get_upload_dir(), wp_basename(), path_join(), wp_delete_file_from_directory(), wp_basename(), path_join(), wp_delete_file_from_directory(), wp_delete_file_from_directory() |
!empty($meta) && ->get_row() && empty($intermediate_dir) && is_array($backup_sizes) | 78–87 | wp_get_upload_dir(), ->esc_like(), ->prepare(), ->get_row(), path_join(), wp_basename(), path_join(), wp_delete_file_from_directory() |
empty($intermediate_dir) && empty($original_image) && empty($source_image) && is_array($backup_sizes) | 79–89 | wp_get_upload_dir(), path_join(), wp_basename(), path_join(), wp_basename(), path_join(), wp_delete_file_from_directory() |
!empty($meta) && ->get_row() && empty($intermediate_dir) && !is_array($backup_sizes) | 79–88 | wp_get_upload_dir(), ->esc_like(), ->prepare(), ->get_row(), path_join(), wp_basename(), path_join(), wp_delete_file_from_directory(), wp_delete_file_from_directory() |
empty($intermediate_dir) && empty($original_image) && !empty($source_image) && !is_array($backup_sizes) | 80–90 | wp_get_upload_dir(), path_join(), wp_basename(), path_join(), wp_basename(), path_join(), wp_delete_file_from_directory(), wp_delete_file_from_directory() |
empty($intermediate_dir) && !empty($original_image) && empty($source_image) && !is_array($backup_sizes) | 80–90 | wp_get_upload_dir(), path_join(), wp_basename(), path_join(), wp_delete_file_from_directory(), path_join(), wp_basename(), wp_delete_file_from_directory() |
!empty($meta) && ->get_row() && empty($original_image) && empty($source_image) && !is_array($backup_sizes) | 80–85 | wp_get_upload_dir(), ->esc_like(), ->prepare(), ->get_row(), wp_basename(), path_join(), wp_basename(), wp_delete_file_from_directory() |
!empty($meta) && ->get_row() && empty($original_image) && empty($source_image) && !is_array($backup_sizes) | 80–85 | wp_get_upload_dir(), ->esc_like(), ->prepare(), ->get_row(), path_join(), wp_basename(), wp_basename(), wp_delete_file_from_directory() |
isset($meta) && empty($intermediate_dir) && empty($original_image) && empty($source_image) && !is_array($backup_sizes) | 82–85 | wp_get_upload_dir(), path_join(), path_join(), wp_basename(), path_join(), wp_basename(), wp_delete_file_from_directory() |
!empty($meta) && ->get_row() && !empty($intermediate_dir) && is_array($backup_sizes) | 82–92 | wp_get_upload_dir(), ->esc_like(), ->prepare(), ->get_row(), wp_basename(), path_join(), wp_delete_file_from_directory(), path_join(), wp_delete_file_from_directory() |
empty($original_image) && !empty($source_image) && is_array($backup_sizes) | 83–90 | wp_get_upload_dir(), wp_basename(), path_join(), wp_basename(), path_join(), wp_delete_file_from_directory(), path_join(), wp_delete_file_from_directory() |
!empty($original_image) && empty($source_image) && is_array($backup_sizes) | 83–90 | wp_get_upload_dir(), wp_basename(), path_join(), wp_delete_file_from_directory(), path_join(), wp_basename(), path_join(), wp_delete_file_from_directory() |
empty($original_image) && !empty($intermediate_dir) && !empty($source_image) && is_array($backup_sizes) | 83–94 | wp_get_upload_dir(), path_join(), wp_basename(), wp_basename(), path_join(), wp_delete_file_from_directory(), path_join(), wp_delete_file_from_directory() |
!empty($original_image) && !empty($intermediate_dir) && empty($source_image) && is_array($backup_sizes) | 83–94 | wp_get_upload_dir(), path_join(), wp_basename(), path_join(), wp_delete_file_from_directory(), wp_basename(), path_join(), wp_delete_file_from_directory() |
!empty($meta) && ->get_row() && !empty($intermediate_dir) && empty($original_image) && empty($source_image) && is_array($backup_sizes) | 83–89 | wp_get_upload_dir(), ->esc_like(), ->prepare(), ->get_row(), wp_basename(), wp_basename(), path_join(), wp_delete_file_from_directory() |
isset($meta) && empty($intermediate_dir) && is_array($backup_sizes) | 84–92 | wp_get_upload_dir(), path_join(), path_join(), wp_basename(), path_join(), wp_delete_file_from_directory(), path_join(), wp_delete_file_from_directory() |
!empty($original_image) && !empty($source_image) && !is_array($backup_sizes) | 84–91 | wp_get_upload_dir(), wp_basename(), path_join(), wp_delete_file_from_directory(), path_join(), wp_basename(), path_join(), wp_delete_file_from_directory(), wp_delete_file_from_directory() |
!empty($original_image) && !empty($intermediate_dir) && !empty($source_image) && !is_array($backup_sizes) | 84–95 | wp_get_upload_dir(), path_join(), wp_basename(), path_join(), wp_delete_file_from_directory(), wp_basename(), path_join(), wp_delete_file_from_directory(), wp_delete_file_from_directory() |
!empty($meta) && ->get_row() && !empty($intermediate_dir) && empty($original_image) && !empty($source_image) && !is_array($backup_sizes) | 84–90 | wp_get_upload_dir(), ->esc_like(), ->prepare(), ->get_row(), wp_basename(), wp_basename(), path_join(), wp_delete_file_from_directory(), wp_delete_file_from_directory() |
!empty($meta) && ->get_row() && !empty($intermediate_dir) && !empty($original_image) && empty($source_image) && !is_array($backup_sizes) | 84–90 | wp_get_upload_dir(), ->esc_like(), ->prepare(), ->get_row(), wp_basename(), path_join(), wp_delete_file_from_directory(), wp_basename(), wp_delete_file_from_directory() |
isset($meta) && empty($original_image) && empty($source_image) && is_array($backup_sizes) | 85–89 | wp_get_upload_dir(), path_join(), path_join(), wp_basename(), wp_basename(), path_join(), wp_delete_file_from_directory() |
isset($meta) && empty($original_image) && !empty($source_image) && !is_array($backup_sizes) | 86–90 | wp_get_upload_dir(), path_join(), path_join(), wp_basename(), wp_basename(), path_join(), wp_delete_file_from_directory(), wp_delete_file_from_directory() |
isset($meta) && !empty($original_image) && empty($source_image) && !is_array($backup_sizes) | 86–90 | wp_get_upload_dir(), path_join(), path_join(), wp_basename(), path_join(), wp_delete_file_from_directory(), wp_basename(), wp_delete_file_from_directory() |
!empty($intermediate_dir) && !empty($original_image) && !empty($source_image) && is_array($backup_sizes) | 87–95 | wp_get_upload_dir(), wp_basename(), path_join(), wp_delete_file_from_directory(), wp_basename(), path_join(), wp_delete_file_from_directory(), path_join(), wp_delete_file_from_directory() |
!empty($meta) && ->get_row() && empty($intermediate_dir) && empty($original_image) && empty($source_image) && !is_array($backup_sizes) | 88–93 | wp_get_upload_dir(), ->esc_like(), ->prepare(), ->get_row(), path_join(), wp_basename(), path_join(), wp_basename(), wp_delete_file_from_directory() |
!empty($meta) && ->get_row() && empty($intermediate_dir) && is_array($backup_sizes) | 90–100 | wp_get_upload_dir(), ->esc_like(), ->prepare(), ->get_row(), path_join(), wp_basename(), path_join(), wp_delete_file_from_directory(), path_join(), wp_delete_file_from_directory() |
empty($intermediate_dir) && empty($original_image) && !empty($source_image) && is_array($backup_sizes) | 91–102 | wp_get_upload_dir(), path_join(), wp_basename(), path_join(), wp_basename(), path_join(), wp_delete_file_from_directory(), path_join(), wp_delete_file_from_directory() |
empty($intermediate_dir) && !empty($original_image) && empty($source_image) && is_array($backup_sizes) | 91–102 | wp_get_upload_dir(), path_join(), wp_basename(), path_join(), wp_delete_file_from_directory(), path_join(), wp_basename(), path_join(), wp_delete_file_from_directory() |
!empty($meta) && ->get_row() && empty($original_image) && empty($source_image) && is_array($backup_sizes) | 91–97 | wp_get_upload_dir(), ->esc_like(), ->prepare(), ->get_row(), wp_basename(), path_join(), wp_basename(), path_join(), wp_delete_file_from_directory() |
!empty($meta) && ->get_row() && empty($original_image) && empty($source_image) && is_array($backup_sizes) | 91–97 | wp_get_upload_dir(), ->esc_like(), ->prepare(), ->get_row(), path_join(), wp_basename(), wp_basename(), path_join(), wp_delete_file_from_directory() |
empty($intermediate_dir) && !empty($original_image) && !empty($source_image) && !is_array($backup_sizes) | 92–103 | wp_get_upload_dir(), path_join(), wp_basename(), path_join(), wp_delete_file_from_directory(), path_join(), wp_basename(), path_join(), wp_delete_file_from_directory(), wp_delete_file_from_directory() |
!empty($meta) && ->get_row() && empty($original_image) && !empty($source_image) && !is_array($backup_sizes) | 92–98 | wp_get_upload_dir(), ->esc_like(), ->prepare(), ->get_row(), wp_basename(), path_join(), wp_basename(), path_join(), wp_delete_file_from_directory(), wp_delete_file_from_directory() |
!empty($meta) && ->get_row() && !empty($original_image) && empty($source_image) && !is_array($backup_sizes) | 92–98 | wp_get_upload_dir(), ->esc_like(), ->prepare(), ->get_row(), wp_basename(), path_join(), wp_delete_file_from_directory(), path_join(), wp_basename(), wp_delete_file_from_directory() |
!empty($meta) && ->get_row() && empty($original_image) && !empty($source_image) && !is_array($backup_sizes) | 92–98 | wp_get_upload_dir(), ->esc_like(), ->prepare(), ->get_row(), path_join(), wp_basename(), wp_basename(), path_join(), wp_delete_file_from_directory(), wp_delete_file_from_directory() |
!empty($meta) && ->get_row() && !empty($original_image) && empty($source_image) && !is_array($backup_sizes) | 92–98 | wp_get_upload_dir(), ->esc_like(), ->prepare(), ->get_row(), path_join(), wp_basename(), path_join(), wp_delete_file_from_directory(), wp_basename(), wp_delete_file_from_directory() |
isset($meta) && empty($intermediate_dir) && empty($original_image) && empty($source_image) && is_array($backup_sizes) | 93–97 | wp_get_upload_dir(), path_join(), path_join(), wp_basename(), path_join(), wp_basename(), path_join(), wp_delete_file_from_directory() |
isset($meta) && empty($intermediate_dir) && empty($original_image) && !empty($source_image) && !is_array($backup_sizes) | 94–98 | wp_get_upload_dir(), path_join(), path_join(), wp_basename(), path_join(), wp_basename(), path_join(), wp_delete_file_from_directory(), wp_delete_file_from_directory() |
isset($meta) && empty($intermediate_dir) && !empty($original_image) && empty($source_image) && !is_array($backup_sizes) | 94–98 | wp_get_upload_dir(), path_join(), path_join(), wp_basename(), path_join(), wp_delete_file_from_directory(), path_join(), wp_basename(), wp_delete_file_from_directory() |
!empty($original_image) && !empty($source_image) && is_array($backup_sizes) | 95–103 | wp_get_upload_dir(), wp_basename(), path_join(), wp_delete_file_from_directory(), path_join(), wp_basename(), path_join(), wp_delete_file_from_directory(), path_join(), wp_delete_file_from_directory() |
!empty($original_image) && !empty($intermediate_dir) && !empty($source_image) && is_array($backup_sizes) | 95–107 | wp_get_upload_dir(), path_join(), wp_basename(), path_join(), wp_delete_file_from_directory(), wp_basename(), path_join(), wp_delete_file_from_directory(), path_join(), wp_delete_file_from_directory() |
!empty($meta) && ->get_row() && !empty($intermediate_dir) && empty($original_image) && !empty($source_image) && is_array($backup_sizes) | 95–102 | wp_get_upload_dir(), ->esc_like(), ->prepare(), ->get_row(), wp_basename(), wp_basename(), path_join(), wp_delete_file_from_directory(), path_join(), wp_delete_file_from_directory() |
!empty($meta) && ->get_row() && !empty($intermediate_dir) && !empty($original_image) && empty($source_image) && is_array($backup_sizes) | 95–102 | wp_get_upload_dir(), ->esc_like(), ->prepare(), ->get_row(), wp_basename(), path_join(), wp_delete_file_from_directory(), wp_basename(), path_join(), wp_delete_file_from_directory() |
!empty($meta) && ->get_row() && !empty($intermediate_dir) && !empty($original_image) && !empty($source_image) && !is_array($backup_sizes) | 96–103 | wp_get_upload_dir(), ->esc_like(), ->prepare(), ->get_row(), wp_basename(), path_join(), wp_delete_file_from_directory(), wp_basename(), path_join(), wp_delete_file_from_directory(), wp_delete_file_from_directory() |
isset($meta) && empty($original_image) && !empty($source_image) && is_array($backup_sizes) | 97–102 | wp_get_upload_dir(), path_join(), path_join(), wp_basename(), wp_basename(), path_join(), wp_delete_file_from_directory(), path_join(), wp_delete_file_from_directory() |
isset($meta) && !empty($original_image) && empty($source_image) && is_array($backup_sizes) | 97–102 | wp_get_upload_dir(), path_join(), path_join(), wp_basename(), path_join(), wp_delete_file_from_directory(), wp_basename(), path_join(), wp_delete_file_from_directory() |
isset($meta) && !empty($original_image) && !empty($source_image) && !is_array($backup_sizes) | 98–103 | wp_get_upload_dir(), path_join(), path_join(), wp_basename(), path_join(), wp_delete_file_from_directory(), wp_basename(), path_join(), wp_delete_file_from_directory(), wp_delete_file_from_directory() |
!empty($meta) && ->get_row() && empty($intermediate_dir) && empty($original_image) && empty($source_image) && is_array($backup_sizes) | 99–105 | wp_get_upload_dir(), ->esc_like(), ->prepare(), ->get_row(), path_join(), wp_basename(), path_join(), wp_basename(), path_join(), wp_delete_file_from_directory() |
!empty($meta) && ->get_row() && empty($intermediate_dir) && empty($original_image) && !empty($source_image) && !is_array($backup_sizes) | 100–106 | wp_get_upload_dir(), ->esc_like(), ->prepare(), ->get_row(), path_join(), wp_basename(), path_join(), wp_basename(), path_join(), wp_delete_file_from_directory(), wp_delete_file_from_directory() |
!empty($meta) && ->get_row() && empty($intermediate_dir) && !empty($original_image) && empty($source_image) && !is_array($backup_sizes) | 100–105 | wp_get_upload_dir(), ->esc_like(), ->prepare(), ->get_row(), path_join(), wp_basename(), path_join(), wp_delete_file_from_directory(), path_join(), wp_basename(), wp_delete_file_from_directory() |
empty($intermediate_dir) && !empty($original_image) && !empty($source_image) && is_array($backup_sizes) | 103–115 | wp_get_upload_dir(), path_join(), wp_basename(), path_join(), wp_delete_file_from_directory(), path_join(), wp_basename(), path_join(), wp_delete_file_from_directory(), path_join(), wp_delete_file_from_directory() |
!empty($meta) && ->get_row() && empty($original_image) && !empty($source_image) && is_array($backup_sizes) | 103–110 | wp_get_upload_dir(), ->esc_like(), ->prepare(), ->get_row(), wp_basename(), path_join(), wp_basename(), path_join(), wp_delete_file_from_directory(), path_join(), wp_delete_file_from_directory() |
!empty($meta) && ->get_row() && !empty($original_image) && empty($source_image) && is_array($backup_sizes) | 103–110 | wp_get_upload_dir(), ->esc_like(), ->prepare(), ->get_row(), wp_basename(), path_join(), wp_delete_file_from_directory(), path_join(), wp_basename(), path_join(), wp_delete_file_from_directory() |
!empty($meta) && ->get_row() && empty($original_image) && !empty($source_image) && is_array($backup_sizes) | 103–110 | wp_get_upload_dir(), ->esc_like(), ->prepare(), ->get_row(), path_join(), wp_basename(), wp_basename(), path_join(), wp_delete_file_from_directory(), path_join(), wp_delete_file_from_directory() |
!empty($meta) && ->get_row() && !empty($original_image) && empty($source_image) && is_array($backup_sizes) | 103–110 | wp_get_upload_dir(), ->esc_like(), ->prepare(), ->get_row(), path_join(), wp_basename(), path_join(), wp_delete_file_from_directory(), wp_basename(), path_join(), wp_delete_file_from_directory() |
!empty($meta) && ->get_row() && !empty($original_image) && !empty($source_image) && !is_array($backup_sizes) | 104–111 | wp_get_upload_dir(), ->esc_like(), ->prepare(), ->get_row(), wp_basename(), path_join(), wp_delete_file_from_directory(), path_join(), wp_basename(), path_join(), wp_delete_file_from_directory(), wp_delete_file_from_directory() |
!empty($meta) && ->get_row() && !empty($original_image) && !empty($source_image) && !is_array($backup_sizes) | 104–111 | wp_get_upload_dir(), ->esc_like(), ->prepare(), ->get_row(), path_join(), wp_basename(), path_join(), wp_delete_file_from_directory(), wp_basename(), path_join(), wp_delete_file_from_directory(), wp_delete_file_from_directory() |
isset($meta) && empty($intermediate_dir) && empty($original_image) && !empty($source_image) && is_array($backup_sizes) | 105–110 | wp_get_upload_dir(), path_join(), path_join(), wp_basename(), path_join(), wp_basename(), path_join(), wp_delete_file_from_directory(), path_join(), wp_delete_file_from_directory() |
isset($meta) && empty($intermediate_dir) && !empty($original_image) && empty($source_image) && is_array($backup_sizes) | 105–110 | wp_get_upload_dir(), path_join(), path_join(), wp_basename(), path_join(), wp_delete_file_from_directory(), path_join(), wp_basename(), path_join(), wp_delete_file_from_directory() |
isset($meta) && empty($intermediate_dir) && !empty($original_image) && !empty($source_image) && !is_array($backup_sizes) | 106–111 | wp_get_upload_dir(), path_join(), path_join(), wp_basename(), path_join(), wp_delete_file_from_directory(), path_join(), wp_basename(), path_join(), wp_delete_file_from_directory(), wp_delete_file_from_directory() |
!empty($meta) && ->get_row() && !empty($intermediate_dir) && !empty($original_image) && !empty($source_image) && is_array($backup_sizes) | 107–115 | wp_get_upload_dir(), ->esc_like(), ->prepare(), ->get_row(), wp_basename(), path_join(), wp_delete_file_from_directory(), wp_basename(), path_join(), wp_delete_file_from_directory(), path_join(), wp_delete_file_from_directory() |
isset($meta) && !empty($original_image) && !empty($source_image) && is_array($backup_sizes) | 109–115 | wp_get_upload_dir(), path_join(), path_join(), wp_basename(), path_join(), wp_delete_file_from_directory(), wp_basename(), path_join(), wp_delete_file_from_directory(), path_join(), wp_delete_file_from_directory() |
!empty($meta) && ->get_row() && empty($intermediate_dir) && empty($original_image) && !empty($source_image) && is_array($backup_sizes) | 111–118 | wp_get_upload_dir(), ->esc_like(), ->prepare(), ->get_row(), path_join(), wp_basename(), path_join(), wp_basename(), path_join(), wp_delete_file_from_directory(), path_join(), wp_delete_file_from_directory() |
!empty($meta) && ->get_row() && empty($intermediate_dir) && !empty($original_image) && empty($source_image) && is_array($backup_sizes) | 111–117 | wp_get_upload_dir(), ->esc_like(), ->prepare(), ->get_row(), path_join(), wp_basename(), path_join(), wp_delete_file_from_directory(), path_join(), wp_basename(), path_join(), wp_delete_file_from_directory() |
!empty($meta) && ->get_row() && empty($intermediate_dir) && !empty($original_image) && !empty($source_image) && !is_array($backup_sizes) | 112–118 | wp_get_upload_dir(), ->esc_like(), ->prepare(), ->get_row(), path_join(), wp_basename(), path_join(), wp_delete_file_from_directory(), path_join(), wp_basename(), path_join(), wp_delete_file_from_directory(), wp_delete_file_from_directory() |
!empty($meta) && ->get_row() && !empty($original_image) && !empty($source_image) && is_array($backup_sizes) | 115–123 | wp_get_upload_dir(), ->esc_like(), ->prepare(), ->get_row(), wp_basename(), path_join(), wp_delete_file_from_directory(), path_join(), wp_basename(), path_join(), wp_delete_file_from_directory(), path_join(), wp_delete_file_from_directory() |
!empty($meta) && ->get_row() && !empty($original_image) && !empty($source_image) && is_array($backup_sizes) | 115–123 | wp_get_upload_dir(), ->esc_like(), ->prepare(), ->get_row(), path_join(), wp_basename(), path_join(), wp_delete_file_from_directory(), wp_basename(), path_join(), wp_delete_file_from_directory(), path_join(), wp_delete_file_from_directory() |
isset($meta) && empty($intermediate_dir) && !empty($original_image) && !empty($source_image) && is_array($backup_sizes) | 117–123 | wp_get_upload_dir(), path_join(), path_join(), wp_basename(), path_join(), wp_delete_file_from_directory(), path_join(), wp_basename(), path_join(), wp_delete_file_from_directory(), path_join(), wp_delete_file_from_directory() |
!empty($meta) && ->get_row() && empty($intermediate_dir) && !empty($original_image) && !empty($source_image) && is_array($backup_sizes) | 123–130 | wp_get_upload_dir(), ->esc_like(), ->prepare(), ->get_row(), path_join(), wp_basename(), path_join(), wp_delete_file_from_directory(), path_join(), wp_basename(), path_join(), wp_delete_file_from_directory(), path_join(), wp_delete_file_from_directory() |
This body has more branch combinations than are worth enumerating, so the table covers the outcomes found first rather than every one that exists.
Across PHP versions
| PHP | Compiled | Executed | Branches | Notes |
|---|---|---|---|---|
| 8.6-dev | 259 | 29–130 | 32 | |
| 8.5 | 259 | 29–130 | 32 | |
| 8.4 | 259 | 29–130 | 32 | 32 fewer instructions than PHP 8.3 |
| 8.3 | 291 | 29–144 | 32 | |
| 8.2 | 291 | 29–144 | 32 | |
| 8.1 | 291 | 29–144 | 32 | |
| 7.4 | 291 | 29–144 | 32 |
An instruction is not a fixed amount of time, so a matching count is not necessarily the same speed; what it rules out is a difference in the work itself.
Uses · 4
- wp_get_upload_dir()Retrieves uploads directory information.
- wp_basename()i18n-friendly version of basename().
- path_join()Joins two filesystem paths together.
- wp_delete_file_from_directory()Deletes a file if its path is within the given directory.
Used by · 1
- wp_delete_attachment()Trashes or deletes an attachment.
Source code
function wp_delete_attachment_files( $post_id, $meta, $backup_sizes, $file ) { global $wpdb; $uploadpath = wp_get_upload_dir(); $deleted = true; if ( ! empty( $meta['thumb'] ) ) { // Don't delete the thumb if another attachment uses it. if ( ! $wpdb->get_row( $wpdb->prepare( "SELECT meta_id FROM $wpdb->postmeta WHERE meta_key = '_wp_attachment_metadata' AND meta_value LIKE %s AND post_id <> %d", '%' . $wpdb->esc_like( $meta['thumb'] ) . '%', $post_id ) ) ) { $thumbfile = str_replace( wp_basename( $file ), $meta['thumb'], $file ); if ( ! empty( $thumbfile ) ) { $thumbfile = path_join( $uploadpath['basedir'], $thumbfile ); $thumbdir = path_join( $uploadpath['basedir'], dirname( $file ) ); if ( ! wp_delete_file_from_directory( $thumbfile, $thumbdir ) ) { $deleted = false; } } } } // Remove intermediate and backup images if there are any. if ( isset( $meta['sizes'] ) && is_array( $meta['sizes'] ) ) { $intermediate_dir = path_join( $uploadpath['basedir'], dirname( $file ) ); foreach ( $meta['sizes'] as $size => $sizeinfo ) { $intermediate_file = str_replace( wp_basename( $file ), $sizeinfo['file'], $file ); if ( ! empty( $intermediate_file ) ) { $intermediate_file = path_join( $uploadpath['basedir'], $intermediate_file ); if ( ! wp_delete_file_from_directory( $intermediate_file, $intermediate_dir ) ) { $deleted = false; } } } } if ( ! empty( $meta['original_image'] ) ) { if ( empty( $intermediate_dir ) ) { $intermediate_dir = path_join( $uploadpath['basedir'], dirname( $file ) ); } $original_image = str_replace( wp_basename( $file ), $meta['original_image'], $file ); if ( ! empty( $original_image ) ) { $original_image = path_join( $uploadpath['basedir'], $original_image ); if ( ! wp_delete_file_from_directory( $original_image, $intermediate_dir ) ) { $deleted = false; } } } /* * Delete the source-format companion file. The client-side media flow can * sideload a source-format original (such as a HEIC file) alongside a * web-viewable derivative, recording its filename under the 'source_image' * key. This is kept separate from 'original_image', which continues to * point at the derivative. */ if ( ! empty( $meta['source_image'] ) && is_string( $meta['source_image'] ) ) { if ( empty( $intermediate_dir ) ) { $intermediate_dir = path_join( $uploadpath['basedir'], dirname( $file ) ); } $source_image = str_replace( wp_basename( $file ), $meta['source_image'], $file ); if ( ! empty( $source_image ) ) { $source_image = path_join( $uploadpath['basedir'], $source_image ); if ( ! wp_delete_file_from_directory( $source_image, $intermediate_dir ) ) { $deleted = false; } } } /* * Delete the animated-GIF video companions. When the client-side media flowChangelog
Introduced in 4.9.7. Unchanged from 6.7.7 through 7.1.0.
Signature, return type and hooks compared across 5 parsed releases.
About this page
- Parsed data
- Generated from the wordpress-develop 7.1.0 tag, from
src/wp-includes/post.php, and regenerated for each WordPress release so it tracks the code rather than a snapshot of it. - Corrections
- Something wrong on this page? Report it and it gets fixed in the next regeneration.