Intereting Posts
Является ли WordPress 3.3.1 совместимым с PHP версии 5.2.17? Shortcode не показывает ничего Как перечислять только детские термины таксономии, а не их родителей? wp_enqueuescript не будет загружаться в нижнем колонтитуле даже с заданным значением? Автоматически замените ссылку на другую «новую ссылку», См. Вывод запроса sql при установке плагина в wordpress сложный вопрос запроса Почему мой сайт часто отображает 404 на подстраницах? Идентификатор пользователя в качестве идентификатора сообщения Как установить шаблон возврата для пользовательского типа сообщения в плагине? Добавление мастера в мой плагин Сообщение в блоге из hompage show по определенной категории и часу Отключите «Создать аудио-плейлист» и «Создать список воспроизведения видео» в «Добавить медиа» Заставлять пользователей регистрироваться для просмотра веб-сайта Значки сайтов с альфа-каналом для самостоятельной сети блога WordPress

Что нужно передать для $ required_dirs при вызове _unzip_file_pclzip (aka PclZip)?

Я пытаюсь создать резервный метод, когда ZipArchive нет. Я пытаюсь использовать функцию _unzip_file_pclzip (), содержащуюся в файле wp-admin / includes / file.php

Однако я не уверен, что ожидается для аргумента $ needed_dirs.

Моя целевая папка для zip будет папкой «styles» в моей папке темы, поэтому путь будет «wp-content / themes / mytheme / styles /»

Это то, что ожидается для $ required_dirs?

function openZip($file_to_open) { global $wp_filesystem;//required if _unzip_file_pclzip is used directly global $target; if(class_exists('ZipArchive')) { $zip = new ZipArchive(); $x = $zip->open($file_to_open); if($x === true) { $zip->extractTo($target); $zip->close(); unlink($file_to_open); } else { die("There was a problem. Please try again!"); } } else { $needed_dirs = array(); _unzip_file_pclzip($file_to_open, $target, $needed_dirs); } } 

@Scott BI не тестировал этот скрипт, взятый из inlcudes / file.php -> line 559

_unzip_file_pclzip предполагает, что WP_Filesystem () уже вызывается, поэтому вам нужно настроить global $wp_filesystem

 global $wp_filesystem; $needed_dirs = array(); $target = trailingslashit($target); // Determine any parent dir's needed (of the upgrade directory) if ( ! $wp_filesystem->is_dir($target) ) { //Only do parents if no children exist $path = preg_split('![/\\\]!', untrailingslashit($target)); for ( $i = count($path); $i >= 0; $i-- ) { if ( empty($path[$i]) ) continue; $dir = implode('/', array_slice($path, 0, $i+1) ); if ( preg_match('!^[az]:$!i', $dir) ) // Skip it if it looks like a Windows Drive letter. continue; if ( ! $wp_filesystem->is_dir($dir) ) $needed_dirs[] = $dir; else break; // A folder exists, therefor, we dont need the check the levels below this } }