copy_dir()
Копирует папку из одного места в другое, используя API файловой системы WordPress.
Предполагается, что функция WP_Filesystem() уже была вызвана и сконфигурирована.
Функционал основан на API файловой ситсемы в основе которого лежит базовый класс WP_Filesystem_Base. Который расширяется подходящим под конкретный сервер классом. Итоговый объект находится в глобальной переменной $wp_filesystem.
Возможные методы переменной $wp_filesystem, смотрите у класса:
и у одного из производных от него:
Хуков нет.
Возвращает
true|WP_Error
. WP_Error в случае ошибки, или True в случае успеха.
Использование
copy_dir( $from, $to, $skip_list );
- $from(строка) (обязательный)
- Директория которую нужно скопировать.
- $to(строка) (обязательный)
- Путь куда нужно скопировать директорию.
- $skip_list(массив)
- Список исключений для имен файлов/папок (которые не будут скопированы).
По умолчанию: array()
Примеры
#1 Скопируем папку в другую папку
Копируем папку avatars из папки загрузок uploads в под-папку текущей папки с номером текущего месяца.
global $wp_filesystem; // set filesystem if it is not set yet if( ! $wp_filesystem ){ require_once ABSPATH . '/wp-admin/includes/file.php'; WP_Filesystem(); } $dir = wp_get_upload_dir(); /* Array( [path] => /home/kama.ru/html/wp-content/uploads/2018/05 [url] => //kama.ru/wp-content/uploads/2018/05 [subdir] => /2018/05 [basedir] => /home/kama.ru/html/wp-content/uploads [baseurl] => https://wp-kama.ru/wp-content/uploads [error] => ) */ $from = $dir['basedir'] .'/avatars'; // $to не может быть прямым путем к папке, иначе методы FTP и SSH остаются в нерабочими $to = $wp_filesystem->find_folder( $dir['path'] ); copy_dir( $from, $to );
#2 Копирование папки с исключением указанных файлов в папке
Тоже самое но исключая файлы index.php, index.html
global $wp_filesystem; $dir = wp_get_upload_dir(); $from = $dir['basedir'] .'/avatars'; // $to не может быть прямым путем к папке, иначе методы FTP и SSH остаются в нерабочими $to = $wp_filesystem->find_folder( $dir['path'] ); $skip_list = array( 'index.php', 'index.html' ); copy_dir( $from, $to, $skip_list );
Заметки
- Global. WP_Filesystem_Base. $wp_filesystem WordPress filesystem subclass.
Список изменений
С версии 2.5.0 | Введена. |