1

这是我关于堆栈溢出的第一篇文章,所以如果我违反了礼仪或做了一些愚蠢的事情,我深表歉意。我也是一个新手程序员,所以如果这个问题看起来很愚蠢,我提前道歉。

现在进入重点:当我们的主要程序员正在度假时,我正在尝试为网站创建一个 WordPress 插件。我已经取得了一些成功,现在我需要做的是在用户在网页上执行特定操作后从插件中调用 simplemodal-login。目前,我正在尝试这样做以包含文件,这些文件位于文件中插件的上一级目录中(我将屏蔽文件名以保持匿名):

include ("../simplemodal-login/simplemodal-login.php");

我还尝试在 simplemodal-login 目录部分前加上/../../..//../../ . 我也试过

include ("{$_SERVER['DOCUMENT_ROOT']}/[project name]/wp-content/plugins/simplemodal-login");

以及它的一些变体。没有任何效果。我不断收到此错误消息的变体:

Warning: include(../simplemodal-login/simplemodal-login.php) [function.include]: failed to open stream: No such file or directory in /home/[user name]/public_html/[website name]/[project name]/wp-content/plugins/[my plugin]/[plugin file] on line 29
Warning: include() [function.include]: Failed opening '../simplemodal-login/simplemodal-login.php' for inclusion (include_path='.:/usr/lib/php:/usr/local/lib/php') in /home/[user name]/public_html/[website name]/[project name]/wp-content/plugins/[plugin name]/[plugin file].php on line 29

我究竟做错了什么?我只是想在用户看到网页一定次数后运行 simplemodal-login 插件。如何正确包含文件?对于我的经验不足,我深表歉意——我在大学学习了 Java 入门课程(我做得很好),今年夏天我作为实习生学了一点(我的意思是 LITTLE)一点 PHP。如果有人可以指导我,以便在我尝试包含文件时不会收到该错误消息,那将非常有帮助。

谢谢!

4

1 回答 1

1

如果您尝试包含的文件是您正在编写代码的插件文件的一个目录级别,那么可移植的解决方案是使用:

include dirname(__FILE__) . '/../file.php';

dirname(__FILE__)返回执行该语句的文件的路径(无论它本身是否包含在内)。我在 Wordpress 插件中使用它没有任何问题。

希望有帮助。

于 2012-08-07T18:43:33.000 回答