これを行う別の方法を次に示します。
page.php をコピーしてダウンロード テンプレートを作成し、これを新しいテンプレートに含めます。
<?php
/*
Template Name: Downloads
*/
?>
page.php のように、テンプレートにヘッダー、フッターなどを入力します。WordPress で新しいページを作成し、テンプレート「ダウンロード」をそれに割り当てます。
たとえば、元の投稿 (single.php) で、次のようにダウンロード リンクを動的に作成します。
<a href="/download/?fileID=<?php echo $post->ID; ?>">Download File</a>
ユーザーは、作成したばかりのダウンロード ページにリダイレクトされます。このコードをダウンロード テンプレート/ページに配置する必要があります。
<?php
if (isset($_GET['fileID']) && is_numeric($_GET['fileID'])) { // to verify that fileID is passed
// we now have the post ID in downloads page and can create download link
$file = get_post_meta($_GET['fileID'], 'durl', true);
}
?>
<a href="<?php echo $file; ?>">Download now</a>
そして、ダウンロードページにカスタムフィールドの値を出力する必要があります(これは、投稿に関連するダウンロードリンクです)
このコードのアイデアは、$_GET で投稿 ID を渡し、投稿 ID を使用してカスタム フィールドからダウンロード リンクを取得することです。