如何在插件上使用可插拔功能

时间:2019-01-15 14:57:11

标签: wordpress

我需要在插件中使用wp_insert_userwp_update_user之类的函数,但是这些函数会调用其他尚未加载的函数(例如get_user_byget_userdata )。

如果我需要使用这些函数的pluggable.php文件,它可以工作,但是弄乱WordPress加载顺序对我来说似乎是个坏主意。

您如何在插件中使用这些功能?

1 个答案:

答案 0 :(得分:0)

研究了ACF插件的工作方式后,我找到了一个解决方案,而不是在加载插件时调用该函数,而是将其添加到动作init中。

require 'myClass.php';
$myClass = new myClass();

add_action('init', [$myClass, 'myFunction']);

我甚至建议对您的插件使用主类,并在__construct中将您的逻辑与init和/或plugins_loaded挂钩。

class MyPlugin {
  public function __construct() {
    add_action( 'plugins_loaded', [$this, 'plugins_loaded'] );
    add_action( 'init', [$this, 'init'] );
  }

  public function plugins_loaded() {
    // pluggables functions are available here
  }

  public function init() {
    // pluggables functions are available here
  }
}
new MyPlugin();