Преобразование файла чтения 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);
}
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';