WordPress 投稿のカスタムフィールドに紐づくファイルダウンロード一覧ページのダウンロード処理

未分類

カスタムフィールドで紐づけて管理しているファイルのダウンロード一覧ページを作成した際に Google Chrome においてダウンロードが出来ない現象が起きた。
ZIPや画像形式は問題なかったのですが、エクセル形式でスプレッドシートのビューアーが動いてしまうなど意図しない動きになってしまった。
回避策としてダウンロード専用ページを固定ページで登録して専用のテンプレートを紐づけて対応することにした。

/*
  Template Name: download
 */

$post_id = $_POST['fid'];
if (!$post_id) {
    wp_redirect(home_url());
    exit;
}
$file      = get_field('file', $post_id);
$fileurl   = $file['url'];
$fpath     = str_replace(WP_CONTENT_URL, WP_CONTENT_DIR, $fileurl);
$filetitle = $file['title'];
$filename  = $file['filename'];
$arr       = explode('.', $filename);
$ext       = end($arr);



header('Content-Type: application/force-download');
header('Content-Length: '.filesize($fpath));
header('Content-disposition: attachment; filename="'.$filetitle.'.'.$ext.'"');
readfile($fpath);

【PR】第51回豊田おいでんまつり@豊田市街 (愛知県豊田市若宮町1丁目35)

タイトルとURLをコピーしました