質問: 'plugina/plugina.php'; include_once( abspath . 'wp-admin/includes/plugin.php' ); if (!is_plugin_active($plugin)) { wp_register_script( $this->plugin_name . '-ajs', plugin_dir_url(__file__) . 'js/angular/angular.min.js', array(), $this->version, false ); }
回答: あなたがplugins_loadedに夢中になっているのを見た今、これはwp_enqueue_scriptsよりずっと早く起動されるので意味があります。この時点で、関数は0を返すと予想されます。アクションが一般的に起動される順序については、 here および here を参照してください。 他のキューに登録されたスクリプトの後に実行されるように、遅い優先順位で/ = - wp_enqueue_scriptsにアクション を追加してください。それから 登録解除 スクリプトを実行して、新しいパラメータで再度登録することができます。 別のパラメータですでに登録されているハンドルを登録またはエンキューしようとした場合、新しいパラメータは無視されます。代わりに、wp_deregister_script()を使用して、新しいパラメータでスクリプトを再度登録してください。 編集:申し訳ありませんが、私はそれを誤解しています。 is_plugin_activeはアクションフックではなく、スクリプトがエンキューされているかどうかを知らさずにすぐにtrueを返します。それでもやはり、関数wp_script_isをwp_enqueue_scripts以降にフックしなければならないことを意味します。