回答:
でwp-settings.php
、WordPressは最初に使用する必要のあるプラグイン(オプションのmu-plugins
フォルダー内のプラグイン)をチェックし、それらをロードします。
次に、マルチサイトインストールを実行している場合、ネットワークでアクティブ化されているプラグインをチェックし、それらをロードします。
次にactive_plugins
、wp_options
データベーステーブルのエントリを調べて、他のすべてのアクティブなプラグインをチェックし、それらをループします。プラグインはアルファベット順にリストされます。
WordPressがほとんどすべてをロードする順序は次のとおりです。http://codex.wordpress.org/Action_Reference#Actions_Run_During_a_Typical_Request
問題は、適切に作成されたプラグインはWordPressフックを使用するため、通常、個々のプラグインがどの順序で読み込まれるかは関係ありません。(適切に作成されたプラグインは、競合しないように、関数とクラスのプレフィックスも付けます。)
プラグインAPIの詳細:http : //codex.wordpress.org/Plugin_API/
完全にプラグインに依存します。WordPressはプラグイン内の1つのファイルのみをロードします。ファイルには通常、名前が付けられthe-plugin-name.php
、上部にタイトル、説明、著者などが含まれます。require_once
およびその他のファイルを使用して、残りのファイルをロードするのはプラグイン次第wp_enqueue_script
です。
apply_filters()
フックを作成するために使用するが、を使用するプラグインの前に実行add_filter()
される場合、引き続き機能しますか?論理的には、apply_filters()
すでに起動しているようなのでadd_filter()
、2番目のプラグインの呼び出しは何もしません。プラグインで作成されたフックのみを使用する場合、プラグインがロードされる順序は重要ですか?
apply_filters()
実行時にロードされたものです。add_filter()
前に実行する必要がありますapply_filters()
。場合はadd_filter()
、プラグインファイルではなく、他の関数である、それは上で動作するplugins_loaded
一般的にあなたが必要があると思います前に起こるために起こっているフックapply_filters()
。
the_content
-外観の順序はどのように決定されますか?
すべてのプラグインが次のようにロードを完了した後に実行される「遅延ロード」アクションをプラグインに含めると便利です。
add_action('plugins_loaded', 'my_late_loader');
関数my_late_loaderは、他のすべてのプラグインの後に開始されます。これにより、my_late_loader内で開始される自分の関数my_other_functionで他のプラグインによって定義されたフックを使用できます
/**
* Late loading function for actions that must run after all plugins
* have loaded
*/
function my_late_loader(){
add_action( 'some_hook', 'my_other_function', 10, 1);
}
少し複雑ですが(これは知っています)、これにより、プラグインのロード順序に関係なく、追加される前に他のプラグインのフックが作成されます。