首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >registeration_activation_hook WordPress

registeration_activation_hook WordPress
EN

Stack Overflow用户
提问于 2018-03-16 01:20:23
回答 1查看 20关注 0票数 0

我有一个关于WordPress中的register_activation_hook的问题。让我举个例子。比方说……

主插件文件:

代码语言:javascript
运行
复制
//main_plugin_file.php

register_activation_hook( __FILE__,  'activate'  );

function activate(){

    require_once plugin_dir_path( __FILE__ ) . 'classes/class-config.php';

    $config  = new config();

    $config->activate_function();

}

类文件:

代码语言:javascript
运行
复制
//class-config.php

class config {

    public function __construct(){

        add_action( 'query_vars', array( $this, 'sample_one' ) );

        add_filter( 'init', array( $this, 'sample_two' ) );

        add_action( 'wp_loaded', array( $this, 'sample_three' ) );

    }

    public function activate_function(){

        $this->insert_user_into_database();

    }

    public function insert_user_into_database (){

     //execution code here....

   }

我的问题是,一旦我激活了这个插件,Config类中的__construct函数也会运行吗?还是"activate_function“中的函数运行?,哪个先运行?我很困惑,因为我有一个$config = new config();,每当有一个“新的”关键字时,__construct函数就会自动运行。请帮我理解一下。

谢谢

EN

回答 1

Stack Overflow用户

发布于 2018-03-16 01:37:14

根据您的main_plugin_file.php代码:

  1. activate()将在插件被激活时运行,这是由于您在class-config.php文件中加载了register_activation_hook
    • ,但是没有发生任何事情,因为它只是定义了类,但是config类还没有被调用/实例化-它只是被调用/实例化-它是纯defined.

  1. 调用$config = new config();时,将在此处实例化类,此时将运行__construct函数run.
  2. $config->activate_function();

如果您注释掉这行// $config = new config();,那么__construct函数将永远不会运行,因为当您require class-config.php文件时,它实际上并没有运行内部函数。类仅在您调用它们时运行,例如$var = new Class();,而不是在定义它们时运行。

它类似于这个基本的函数示例,这个文件:

代码语言:javascript
运行
复制
<?php function foo(){
    echo 'bar';
} ?>

将永远不会输出任何内容,因为函数foo已经定义,但是直到我们稍后调用foo()它才会运行。

这是一个简单的沙盒函数,你只能看到它回显一次,因为我们定义了类,但在我们通过调用new MyClass()实例化它之前什么都不会发生:

Sandbox Link

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49305571

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档