2014-10-09 123 views
-6

我試過了我在這裏可以找到的所有內容並使用Google搜索。包括路徑,外部庫,解釋器設置...Phpstorm不知道如何運行Wordpress

每當我嘗試運行我的主題的index.php文件:

C:\XAMPP\php\php.exe "C:\path\to\project\wp-content\themes\MYTHEME\index.php" 

Fatal error: Call to undefined function get_header() in C:\path\to\project\wp-content\themes\MYTHEME\index.php on line 1 

Process finished with exit code 255 

所以,是1號線我打電話我的頭。

原來,它試圖運行index.php像一個獨立的文件,,但忽略了整個Wordpress instalation(我從不同的角度)。當然它發生在哪裏get_header()是因爲我可以控制點擊它,它會把我帶到它聲明的文件中,沒有問題。

它也正確檢測XAMP的PHP解釋器。

如果我只是訪問在瀏覽器中鍵入我的本地主機URL的網站,它也可以很好地工作。它只是不會通過Phpstorm。

+0

我發現我的答案。無論如何,通常它會運行該文件,就像它是PHP。您需要將該文件與函數定義一起包含或包含該文件的某種wordpress配置。其他文件中定義的功能不能自動使用。我假設你沒有包括,因爲它說錯誤在第1行。如果我錯了,請更正。無論哪種方式,但你應該包括一些代碼,所以我們不必猜測。 – 2014-10-09 23:02:37

+0

有人刪除我的評論,我不知道爲什麼。無論如何,我只是說index.php只有一行代碼(也是第一行的錯誤,發佈代碼的其餘部分將毫無意義),只是get_header()。這是一個乾淨的WP安裝,乾淨的主題,全部在XAMPP上。我該如何告訴Phpstorm運行其他WP文件?這就是我在這裏問的。 – 2014-10-11 06:48:00

+0

您使用的是哪個版本? phpstorm 8.0在項目設置中有wordpress集成,您需要首先啓用。 – Rugdr 2014-10-13 17:47:07

回答

5

您直接調用主題的索引文件,這是不正確的方式,因爲您的主題必須使用WordPress的一些默認功能,如get_header()在這種情況下。

因此,您需要確保已加載wp-load.php以使所有可用的WP功能可用。你有兩種方式:

1)調用根index.php所以一切都會默認加載。

2)呼叫主題的index.php但在添加下面的代碼:

if(!function_exists('get_header')) { 
    require_once('/wp-load.php'); 
} 

然而,這不是好辦法:)

+0

好的,但是什麼是phpstorm WP插件有用嗎?它應該預先加載所需的任何東西,所有的WP文件都只是爲了讓phpstorm加載它們,然而我必須手動運行我不想運行的內容,然後以某種方式導航到我的特定php文件,然後啓動上班?並且在每次運行中都這樣做?我想閱讀或查看一個phpstorm WP他們的開發工作流程應該是怎樣的。 – 2014-10-16 15:51:58

+0

@CarlesAlcolea WP從未開發過這種方式,您可以直接運行您的主題文件。預計你會從根目錄運行你的'index.php',並且它會更進一步。 – 2014-10-17 04:42:09

+0

Okey,還有,我可以閱讀任何phpstorm + wordpress體面的文檔嗎? – 2014-10-17 18:04:43

相關問題