以下のスクリプトでは、readfileをWP_filesytemと同等のものに変換する必要があります。しかし、私はコーデックスで同じを見つけることができません。任意の助けは大歓迎です。
このスクリプトはsettings.iniファイルをユーザーのデスクトップ/ pcに保存します。
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);
}
ファイルを読み込んでユーザーに送信するのは完全に安全であり、必ずしもWP_Filesystemメソッドに変換する必要はありません。書き込みだけが潜在的な問題です。
あなたがそうしたいのであれば、これは同等になります:
echo $wp_filesystem->get_contents( filename variable here );
また、 "put_contents"のファイル名は正しくありません。 "remote"ディレクトリは "local"ディレクトリと同じではない可能性があるため、WP_PLUGIN_DIR
を使用する代わりに$wp_filesystem->wp_plugins_dir()
を使用する必要があります。
$mySettingsFileLocation = $wp_filesystem->wp_plugins_dir() . '/my-settings/settings.ini';