2014-10-09 124 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

相关问题