ワードプレスで会員しかPDFをダウンロードできないようにする

Wordpress
スポンサーリンク

ワードプレスで会員制のサイトを作成しましたが、PDFはログインしていなくても見れる状態のままでした。

今回はログインしていないと、PDFの閲覧ができない様にしていきます。

スポンサーリンク

.htaccessでアクセスを制御

まずはpdfが入っているフォルダに以下の.htaccessUPして、アクセスを拒否するようにします。

<Files ~ "\.(pdf)$">
deny from all
</Files>

PDFのリンクをphpファイルに差替え

各ページに違うPDFが配置されており、PDFファイルは以下の様にカスタムフィールドを利用し指定していました。

echo "<a href=\"https://sample.com/pdf/".(get_field("pdf")." \">".get_the_title( '' )."PDFを表示する</a>");

これを以下の様に書き換えます。

echo "<a href=\"https://sample.com/pdf.php?no=".(get_field("pdf")." \">".get_the_title( '' )."PDFを表示する</a>");

そして、pdf.phpとファイルに以下を記載することでPDFが表示されるようになります。

<?php
require ($_SERVER['DOCUMENT_ROOT'] . '/CMS/wp-load.php');

$pdf = htmlspecialchars($_GET['no'], ENT_QUOTES, 'UTF-8');


if (is_user_logged_in()){
header("Content-Type: application/pdf");
readfile($_SERVER['DOCUMENT_ROOT'].'/pdf/'.$pdf);
exit();
}

?>
この記事書いた人
MITSUI

デジタルマーケティングに16年間従事しているMITSUIです。Google AnalyticsとGoogle Tag Managerが大好きで、これらのツールを活用した情報提供を行っています。ブログではデジタルマーケティングに関する情報や最新のトレンド、ベストプラクティスを紹介しています。

MITSUIをフォローする
Webでお困りごとなら、お気軽にご相談ください
まずは無料相談でお気軽にご相談ください。
Wordpress
スポンサーリンク
シェアする
MITSUIをフォローする
WEB担当者の備忘録

コメント

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