私はWPプラグイン開発用の1冊のEブックからこの画像を入手しました。プラグインがプラグインの前にロードされる理由を説明してください。
pluggable.php
のソースから直接:
<?php
/**
* These functions can be replaced via plugins. If plugins do not redefine these
* functions, then these will be used instead.
*
* @package WordPress
*/
?>
それで、あなたの答えがあります、pluggable.php
の中の関数は/がPluginsによって上書きされることを意図しています。
注文をロードする:
Konstantin Kovsheninによるこの投稿 を参照してください。関連するポイント(10-15):
wp_get_active_and_valid_plugins()
はロードのためにすべてのアクティブなプラグインファイルのリストを取得してそれらをインクルードします。これがあなたのプラグインコードが実行されるポイント、関数、クラスの定義などです。- プラグインで再定義できる関数(および廃止予定の関数)を含む
wp-includes/wp-pluggable.php
およびwp-includes/wp-pluggable-deprecated.php
を含みます。より高度なメーリングのためのwp_mail()
、代替の認証方法のためのwp_authenticate()
など.- blog_charsetオプションに従って内部エンコーディングを設定するために
wp_set_internal_encoding()
が呼び出されます。- オブジェクトのキャッシュが有効になっている場合は
wp_cache_postload()
が呼び出されます。- この時点で
plugins_loaded
アクションが起動されます。これは最初のアクションです(muplugins_loadedがマルチサイト以外のWordPressプラグインをロードする前に起動された後)。これはWordPressがまだ完全に初期化されていないためinitの前に行われます。
だから、単純化:
pluggable.php
がロードされましたplugins_loaded
アクションが起動しましたこれは予想される順序です。
(注:これはすべて wp-settings.php
で行われます。)
それ以降のプラグインがあなたのプラガブルを上書きしないことを決して忘れないでください !私はこの前に wp-hackersメーリングリストに を書きました。
wp-hackers には、フォールバックが実装されていないことを説明する別のスレッドもあります。 関連するTracチケット も読んでください。