2012-08-07 100 views
1

這是我第一篇關於堆棧溢出的文章,所以我很抱歉如果我違反了禮節或者做了一些愚蠢的事情。我也是一個新手程序員,所以如果這個問題看起來很愚蠢,我很抱歉。PHP include()for WordPress插件 - 錯誤/警告消息

現在,我要爲我們的主程序員在度假時爲網站創建一個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

您是否嘗試過使用絕對路徑代替相對?即:require('/ path/to/simplemodal-login/simplemodal-login.php'); – 2012-08-07 18:41:55

回答

1

如果你想包含的文件是你在編寫代碼的插件文件一級目錄時,一個便攜的解決方案是使用:

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

dirname(__FILE__)返回文件的路徑該聲明是在(不管它是否已被包括在內)中執行的。我在Wordpress插件中使用這個沒有任何問題。

希望有所幫助。

+0

工作!非常感謝!如果可以的話,我會投你一票。 – 2012-08-07 18:56:11

+0

@AndrewAnon很高興工作,您可以通過點擊答案左側的複選標記來接受答案。這將建立你的代表,所以你可以很快就問題投票。 – drew010 2012-08-07 19:05:18