如何在WordPress帖子中创建临时下载链接?

时间:2012-12-27 作者:mCrazy eng

我正在创建一个WordPress博客,其中包含一些仅限成员的页面。在那些只有会员的帖子中,我有自己的教程下载链接,我已经免费上传了这些链接。问题是我想让他们停止共享教程的下载链接,而不是我想给他们提供只能工作一次的链接,或者只有从mydomain访问时才工作。com。。

有人能帮我吗?任何想法都会很受欢迎。

-问候

2 个回复
SO网友:Mark Kaplun

这听起来像是电子商务插件应该能够处理的事情。

我处理这个问题的天真方法是每天生成一个新的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,但我认为只要您的成员没有很大的动机尝试破解它,这个概念就应该起作用。

SO网友:ekntrtmz

我已经编写了插件WP DISPATCHER,它可以创建临时下载链接,您还可以在其中设置过期时间。

您可以从以下站点免费下载WP Plugin Repository.

结束

相关推荐

从外部PHP脚本调用Functions.php中的函数

Preamble<我试图确保以前没有人问过这个问题。我刚开始使用StackExchange,所以我可能没有这么做。我不介意责备;厚皮肤,我学得很快:)THE PROBLEM我编写了一个函数并将其放置在主题函数中。phpfunction serverConnect() { $serverAccess = mysql_connect(DB_HOST, DB_USER, DB_PASSWORD); if (!$serverAccess) { die(\"