2014-09-06 17 views
0

我有一些麻煩,包括一個名爲myplugin_functions.php文件WordPress的:如何在包括前端和管理方面的PHP文件(致命錯誤:不能重新聲明myfunction的())

這個PHP文件中包含有要求的功能在wordpress管理員區域中完成一些功能。出於這個原因,我將這個文件包含在後端頁面中使用:

include(plugin_dir_path(__FILE__) . 'myplugin_functions.php'); 

這很好用。

當我在前端頁面上做同樣的事情時,前端可以訪問這些功能。大。

但是當我然後導航到後端我得到一個錯誤信息

Fatal error: Cannot redeclare myfunction() (previously declared in /www/htdocs/...) in /www/htdocs/..../myplugin_functions.php on line 28 

include_once()的使問題消失。但我認爲wordpress不喜歡在前端和後端包含相同的php函數。

你知道爲什麼嗎? 解決此問題的最佳做法是什麼?

謝謝?

+0

可能是代碼 – sprytechies 2014-09-06 09:48:18

+0

問題的問題是,它是包含多次。當我使用include_once()時,問題消失。但我不認爲這是最好的做法 – 2014-09-06 09:49:52

+0

你是對的,使用include_once(),是的,我們不這樣做。 – sprytechies 2014-09-06 09:51:46

回答

1

wordpress對前端和後端使用相同的函數.....你可能會混淆與單獨掛鉤的ajax函數。

如果您在函數中包含文件,請使用require_once/include_once。如果您希望函數可用於整個目錄,請將require_once放置在您的主題函數或插件文件文件中,但在使用函數時不要包含這些函數。

require_once/include_once實際上是很好的做法BTW :)

相關問題