我制作了一个Wordpress插件,它是一种下载管理器。我有一个外部文件下载。负责下载的php。此文件不在Wordpress环境中,因此我必须调用:
$wp_root = dirname(dirname(dirname(dirname(__FILE__))));
require_once $wp_root.\'/wp-load.php\';
我可以使用$wpdb进行sql查询。
注意:此文件必须是外部文件,因为我使用函数“headers()”强制下载。
header("Pragma: public");
header("Expires: 0");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Content-Type: ".$ctype);
header("Content-Length: ".$size);
header("Content-Disposition: attachment; filename=".$info->url_file);
header("Content-Transfer-Encoding: binary");
我的插件工作得很好!,但当我想将其发布到Wordpress存储库时,他们回答我,禁止直接调用wp load。php或wp配置。php
包括wp配置。php和/或wp加载。php不是一个好主意,我们不能批准这样做的插件,除非它有很好的理由加载文件。由于并非所有WordPress安装都具有完全相同的文件结构,因此很容易失败。
我不知道用什么,因为我可以用$wpbd
注2:对于下载,我首先用DB验证它,然后下载。
这是我的插件->http://demo.gopymes.pe/social-godownload/
更新日期:2013年2月24日星期日
这对我来说越来越复杂了。我找不到关于“wp\\u-loaded”的文档,所以我对该函数感到迷茫。
我测试了“template\\u redirect”,但我意识到这不是我想要的,因为我将文档重定向到下载位置,我不想让用户知道要下载的文档位于何处。
我正在查看插件“DownloadMonitor”,奇怪的是,我犯了同样的错误,包括下载中的“wp load.php”和“wp login.php”。php,但是它们在Wordpress的存储库中,我没有离开。
好吧,继续找。。
更新
好吧,好吧,行了!
我用过
add_action(\'init\', \'process\');
function process() {
if(!isset($_GET[\'goaction\'])) return;
if($_GET[\'goaction\']==\'process\')
include("godownload.php");
}