这听起来像是电子商务插件应该能够处理的事情。
我处理这个问题的天真方法是每天生成一个新的URL,方法是将日期嵌入其中,然后在发送文件之前检查URL中的日期是否与当前日期匹配。
您将需要一个插件,该插件使您能够使用短代码对URL进行rmbed,并在发送文件之前检查其有效性。
// files assumed to reside at wp-content/uploads/daily
// use the shortcode like that
// [daylyurl file="file name" anchor="download it"]
add_shortcode(\'dailyurl\',\'my77348_dailyurl\');
function my77348_dailyurl($attr,$content=\'\',$tags) {
$url = get_option(\'siteurl\').\'?download=\'.$attr[\'file\'].\'&code=\'.md5(intval(time()/24*60*60));
return "<a href="$url">$attr[\'anchor\']</a>";
}
// handle the download itself
add_action(\'init\',\'my77348_download\');
function my77348_download() {
if (isset($_GET[\'download\'])) {
if ($_GET[\'code\'] == md5(intval(time()/24*60*60))) { // if it match it is legit
$f = ABSPATH.\'/wp-content/uploads/daily/\'.$_GET[\'download\'];
// not sure if you can set mime types here or need to do all of this before init
readfile($f); send the file itself
exit();
} else
wp_die(404); // not legit
}
}
这不是一个生产级代码,因为我省略了许多健全性检查,可能有一个或更多的bug,但我认为只要您的成员没有很大的动机尝试破解它,这个概念就应该起作用。