web-dev-qa-db-ja.com

リモートプラグインアクティビティーベーシック

私はupdate_option('active_plugins,'some_plugins');を使ってプラグインをリモートでアクティブ化しています。それは1つのことを除けばうまくいきます:いくつかのプラグインがregister_activation_hook(__FILE__,'activate');を使っていくつかのテーブルを作成しなければならない場合。

wp-admin/plugins.phpで普通にプラグインをアクティベートしているときはうまくいきます。このアクティベーションフックをリモートで実行する方法、またはより良いプラグインアクティベーションのための異なる方法があるかもしれません。

1
bigwolk

代わりにactivate_plugin()を使用してください。

activate_plugin( $plugin, $redirect = '', $network_wide = false, $silent = false )

最初のパラメータだけが必要です。オプションと同じ値です。

この関数は必要なアクションを呼び出します。

if ( ! $silent ) {
    do_action( 'activate_plugin', $plugin, $network_wide );
    do_action( 'activate_' . $plugin, $network_wide );
}

注:activate_plugin関数を呼び出す場所によっては、これを追加する必要があるかもしれません。

 include_once( ABSPATH . 'wp-admin/includes/plugin.php' );
1
fuxia