-2
私は私のプラグインのページビューからファイルをダウンロードするにはワードプレスに)(PHPヘッダを使用しようとしていますが、私のスクリプトに存在する各ヘッダ行のために、このエラー・メッセージ・リターンとして機能していません。カスタムプラグインのページからファイルをダウンロードするためにWordpressでPHPのヘッダ()を使用するには?
警告: D:\ xampp \ wordpress \ wp-content \ plugins \ pxw-test \ pxw-にあるヘッダー情報(ヘッダーは既にD:\ xampp \ wordpress \ wp-includes \ formatting.php:5100で開始されています) test.php on line 33
など、現在のヘッダー()の各行について。
<?php
/*
Plugin Name: Test Headers
Description: Download File Test Plugin for Headers Response errors.
Version: 1.0
Author: Tester
Text Domain: pxw_test
*/
//Exit if accessed directly
if (! defined('ABSPATH')){
exit;
}
//Admin Menu
function pxw_test_menu() {
//create custom top-level menu
add_menu_page(
'Dashboard',
'Test Headers',
'manage_options',
'pxw_test',
'pxw_test_dashboard_page',
null,
20
);
}
//Function needed to display top-level page as the main page
function pxw_test_dashboard_page(){
//Download
if(isset($_POST['download'])){
//File To Download
$filename = 'file.txt';
// http headers for Downloads
header("Pragma: public");
header("Expires: 0");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Content-Type: application/force-download");
header("Content-Type: application/octet-stream");
header("Content-Type: application/download");
header("Content-Disposition: attachment; filename=$filename");
header("Content-Transfer-Encoding: binary");
header("Content-Length: ".filesize(plugin_dir_path(__FILE__).$filename));
//You can try the following
// while (ob_get_level()) {
// ob_end_clean();
// }
// @readfile(plugin_dir_path(__FILE__).$filename);
}
else{}
?>
<form action="" method="POST" enctype="multipart/form-data" style="text-align:center;padding: 100px 0;">
<button type="submit" onclick="this.form.submit();" style="background:red;padding:10px;color:#fff;cursor:pointer;"><b>Download File</b></button>
<input type="hidden" name="download" />
</form>
<?php
}
//Finally Display the menu
add_action('admin_menu', 'pxw_test_menu');
?>
私の目標があるにダウンロード:私のスクリプトで..
あなたは以下PXW-test.phpをファイルの内容を見て(プラグイン自体を)持つことができますファイルをダウンロード後に削除してください。もちろん
私がを捜しているわけではない:
function.php解決策は、私はプラグインを構築していて。
しかし、私のプラグインフォルダから短いものと管理しやすいものは歓迎されます。 のような:
PHP
javascriptの
のjQuery
のHTML5など なく、私は、このような削除などの操作を行う必要がありますよう
<a download></a>
ダウンロード後のファイル、ファイルがダウンロードされたかどうかを示します。
ご協力いただきありがとうございます。
問題は、あなたが間違った場所でこれをやっていることです。 (コメントの '/ /メインページとしてトップレベルのページを表示するために必要な機能'それは既にそれを示しているはずです。これは全く異なる機能を詰め込む場所ではありません。)基本的には、ヘッダを生成してファイルをダウンロードするのに必要な出力を生成するWP応答生成プロセス。この回答によると、https://wordpress.stackexchange.com/a/3499 'template_redirect'はうまくいくはずです。 – CBroe
@CBroe - 答えてくれてありがとう。template_redirectフックはどこに置くべきですか?私は試してみましたが、私のためにはうまくいきませんでしたので、上記のスクリプトに基づいてコード例を共有してください。あなたが言及したものを含むすべての関連記事を既にチェックしています。 – Francesco