download
次のサンプルプラグインを使用すると、管理パネルでボタンが押されたときにテキストファイルをダウンロードできます。問題は、テキストファイル名がそうなると思ってhello_world.txt
いたのに、どういうわけかになってしまうことoptions-general.txt
です。
この行header('Content-Disposition: attachment; filename="' . $file_name . '"');
を直接設定すると、正常header('Content-Disposition: attachment; filename="hello_world.txt"');
に機能するようにファイル名が設定されます。
/* Plugin Name: Sample Download Button */
$sample_download_button = new Sample_Download_Button_AdminPage('Sample Download Button');
add_action('init', array($sample_download_button, "download_text"));
add_action('admin_menu', array($sample_download_button , "admin_menu"));
class Sample_Download_Button_AdminPage {
function __construct($pagetitle, $menutitle='', $privilege='manage_options', $pageslug='') {
$this->pagetitle = $pagetitle;
$this->menutitle = !empty($menutitle) ? $menutitle : $pagetitle;
$this->privilege = $privilege;
$this->pageslug = !empty($pageslug) ? $pageslug : basename(__FILE__, ".php");
}
function admin_menu() {
add_options_page($this->pagetitle, $this->menutitle, $this->privilege, $this->pageslug, array(&$this, 'admin_page'));
}
function admin_page() {
?>
<div class="wrap">
<h1>Download Button Sample</h1>
<form action="" method="post" target="_blank">
<input type="submit" value="download" name="download">
</form>
</div>
<?php
}
function download_text($file_name='hello_world.txt') {
if (!isset($_POST['download'])) return;
$your_text = 'hello world';
header("Content-type: text/plain");
header('Content-Disposition: attachment; filename="' . $file_name . '"');
echo $your_text;
exit;
}
}
それはなぜです?また、デフォルトのパラメータ値を設定するにはどうすればよいですか?通常の機能で試してみましたが、デフォルト値も反映されていません。あなたの情報をありがとう。