这是我关于堆栈溢出的第一篇文章,所以如果我违反了礼仪或者做了一些愚蠢的事情,我会道歉。我也是一名新手程序员,所以如果这个问题看起来很蠢,我会提前道歉。
现在谈谈要点:我正在尝试为我们的主要程序员休假时为网站创建一个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的入门课程(我做得很好),今年夏天我作为一名实习生学到了一些PHP(我的意思是LITTLE)。如果有人可以引导我,所以当我尝试包含文件时,我没有收到该错误消息,这将非常有帮助。
谢谢!
答案 0 :(得分:1)
如果您尝试包含的文件是您正在编写代码的插件文件中的一个目录级别,则可以使用便携式解决方案:
include dirname(__FILE__) . '/../file.php';
dirname(__FILE__)
返回执行该语句的文件的路径(无论它是否已被包含在内)。我在Wordpress插件中使用它没有任何问题。
希望有所帮助。