Удаление файла из директории в WordPress с WP_DELETE_FILE_FROM_DIRECTORY()

Удаление файла из директории с помощью WP_DELETE_FILE_FROM_DIRECTORY()

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

Описание функции

Возвращаемое значение

Функция возвращает:

  • true — если файл успешно удален,
  • false — если удаление файла не удалось.

Как использовать

Синтаксис функции:

wp_delete_file_from_directory( $file, $directory );
  • $file (string, обязательный) — абсолютный путь к файлу, который нужно удалить.
  • $directory (string, обязательный) — абсолютный путь к директории, в которой находится файл.

Пример использования

Рассмотрим пример удаления файла test.html из директории загрузок:

$upldir_info = wp_get_upload_dir();
$uploads_dir = $upldir_info['basedir']; // путь к директории загрузок

$result = wp_delete_file_from_directory( "$uploads_dir/test.html", $uploads_dir ); // будет возвращено true или false

В этом примере мы сначала получаем путь к директории загрузок, а затем пытаемся удалить файл test.html, находящийся в этой директории.

Структура функции

Вот как выглядит код функции wp_delete_file_from_directory:

function wp_delete_file_from_directory( $file, $directory ) {
    if ( wp_is_stream( $file ) ) {
        $real_file      = $file;
        $real_directory = $directory;
    } else {
        $real_file      = realpath( wp_normalize_path( $file ) );
        $real_directory = realpath( wp_normalize_path( $directory ) );
    }

    if ( false !== $real_file ) {
        $real_file = wp_normalize_path( $real_file );
    }

    if ( false !== $real_directory ) {
        $real_directory = wp_normalize_path( $real_directory );
    }

    if ( false === $real_file || false === $real_directory || ! str_starts_with( $real_file, trailingslashit( $real_directory ) ) ) {
        return false;
    }

    return wp_delete_file( $file );
}

Как работает эта функция

  1. Проверка потоков: Если заданный файл является потоком, он сохраняется как есть.
  2. Нормализация путей: Путь к файлу и к директории нормализуется для корректного сравнения.
  3. Проверка условий: Если один из путей не существует или файл не находится в указанной директории, функция возвращает false.
  4. Удаление файла: Если все условия выполнены, файл удаляется.

Похожие функции

Существует ряд других функций для работы с файловой системой в WordPress, которые могут быть полезны:

  • copy_dir() — копирует директорию.
  • get_dirsize() — получает размер директории.
  • list_files() — возвращает список файлов в директории.
  • wp_delete_file() — удаляет файл.
  • wp_mkdir_p() — создает директорию с учетом вложенных.

Эти функции тоже можно использовать для управления файлами и директориями в рамках WordPress.

Используя WP_DELETE_FILE_FROM_DIRECTORY(), вы можете легко и безопасно управлять файлами в ваших проектах на WordPress.

Leave a Reply

Ваш адрес email не будет опубликован. Обязательные поля помечены *