为什么没有定义‘REGISTER_ACTIVATION_HOOK’?

时间:2015-01-18 作者:ProfK

在三年前写了整整两个插件之后,我刚刚开始重新熟悉插件的编写。下面是我找到的一些示例代码:

if(!class_exists(\'QuizMaster_Plugin_Template\')) {
    class QuizMaster_Plugin_Template
    {
        public function __construct()
        {
            // register actions.
        }

        public static function activate()
        {
            // Do nothing
        }

        public static function deactivate()
        {
            // Do nothing
        }
    }
}

if(class_exists(\'QuizMaster_Plugin_Template\')) {
    register_activation_hook(__FILE__, array(\'QuizMaster_Plugin_Template\', \'activate\'));
    register_deactivation_hook(__FILE__, array(\'QuizMaster_Plugin_Template\', \'deactivate\'));
    $ewp_quiz_master = new QuizMaster_Plugin_Template();
}
当我在PhpStorm中运行此代码时,会向客户端呈现以下错误:

致命错误:调用C:\\WordPress\\Plugins\\ewp测试主机\\ewp测试主机中未定义的函数register\\u activation\\u hook()。php在线33

我猜我必须为PhpStorm设置一些include文件,甚至只是为了插件,只是为了开发阶段,但我不知道从哪里开始,谷歌似乎在这方面没有太大帮助。

2 个回复
SO网友:Rarst

WP插件是在WordPress核心加载的上下文中加载的。除非您有意将某些部分完全从WordPress中抽象出来,否则它们不会像普通PHP那样工作。

典型的做法是在当地安装实际工作的WP,并在其环境中进行开发。

SO网友:pSyToR

-编辑-因为有些人需要更多的“信息”

2015年1月22日星期四,您可以在以下2个链接上找到如何设置PHPStorm以与WordPress配合使用(如果稍后这些链接不再起作用,我很抱歉)。

https://confluence.jetbrains.com/display/PhpStorm/WordPress+Development+using+PhpStorm

http://www.trotch.com/blog/wordpress-and-phpstorm-howto/

2个不同的站点应该能够指导您如何设置PHPStorm以与WordPress一起使用。

这个过程有点复杂,需要一些时间才能正确理解和应用,因此我将所有内容粘贴在这里只是为了得到一个“好”的答案是无关紧要的。我来这里不是为了表达观点,而是为了帮助目前有问题的人。

总而言之,您必须在PHPStorm中设置配置,以指向WordPress本地安装(甚至远离我快速阅读的内容),并指向您正在开发的插件或主题以及其他一些配置。

如果这些链接不再起作用,可能是PHPStorm和WordPress的版本也发生了更改,这将使此处的信息过时。

结束

相关推荐

在WordPress中使用Xampp接收错误异常

我在使用php 5.5的xampp服务器中有这个php函数,在使用带有php 5.3的实时服务器时,我没有收到任何错误。错误显示致命错误:在C:\\xampp\\htdocs\\wordpresstest\\wp content\\plugins\\Monetizer\\u Pro\\u Monetizer\\Monetizer中,未捕获异常“exception”,消息“String无法解析为XML”。php:910堆栈跟踪:0 C:\\xampp\\htdocs\\wordpresstest\\wp c