Преобразование файла чтения PHP в файловую систему WP


В приведенном ниже сценарии мне нужно преобразовать файл чтения в эквивалент WP_filesytem. Однако я не могу найти то же самое в Кодексе. Любая помощь будет очень признательна.

Этот скрипт сохраняет файл settings.ini на рабочем столе/ПК пользователя.

WP_Filesystem();
global $wp_filesystem;

$mySettingsFileLocation = WP_PLUGIN_DIR.'/my-settings/settings.ini';

if ( ! $wp_filesystem->put_contents( $mySettingsFileLocation, $mySettings, 0644) ) {
    return true;
}


// Define the path to file
 $file = WP_PLUGIN_DIR.'/my-settings/settings.ini';

 if(!$file)
 {
         // File doesn't exist, output error
         die('file not found');
 }
 else
 {
 // Set headers
 header("Cache-Control: public");
 header("Content-Description: File Transfer");
 header("Content-Disposition: attachment; filename=settings.ini");
 header("Content-Type: application/ini");
 header("Content-Transfer-Encoding: binary");

 // Read the file from disk
 readfile($file);
 }
Author: N2Mystic, 2014-02-04

1 answers

Чтение файла для отправки пользователю совершенно безопасно и не обязательно должно быть преобразовано в методы WP_Filesystem. Потенциально проблемой является только написание.

Однако, если бы вы хотели это сделать, это было бы эквивалентно:

echo $wp_filesystem->get_contents( filename variable here );

Также обратите внимание, что ваше имя файла для "put_contents" неверно. Вместо использования WP_PLUGIN_DIR вам нужно использовать $wp_filesystem->wp_plugins_dir(), потому что "удаленный" каталог может отличаться от "локального" каталога.

$mySettingsFileLocation = $wp_filesystem->wp_plugins_dir() . '/my-settings/settings.ini';

 2
Author: Otto, 2014-02-04 19:00:27