web-dev-qa-db-ja.com

プラグインがプラグインの前にロードされる理由

WP URL call

私はWPプラグイン開発用の1冊のEブックからこの画像を入手しました。プラグインがプラグインの前にロードされる理由を説明してください。

4
A.C.Balaji

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):

  1. wp_get_active_and_valid_plugins()はロードのためにすべてのアクティブなプラグインファイルのリストを取得してそれらをインクルードします。これがあなたのプラグインコードが実行されるポイント、関数、クラスの定義などです。
  2. プラグインで再定義できる関数(および廃止予定の関数)を含むwp-includes/wp-pluggable.phpおよびwp-includes/wp-pluggable-deprecated.phpを含みます。より高度なメーリングのためのwp_mail()、代替の認証方法のためのwp_authenticate()など.
  3. blog_charsetオプションに従って内部エンコーディングを設定するためにwp_set_internal_encoding()が呼び出されます。
  4. オブジェクトのキャッシュが有効になっている場合はwp_cache_postload()が呼び出されます。
  5. この時点でplugins_loadedアクションが起動されます。これは最初のアクションです(muplugins_loadedがマルチサイト以外のWordPressプラグインをロードする前に起動された後)。これはWordPressがまだ完全に初期化されていないためinitの前に行われます。

だから、単純化:

  1. プラグインがロードされている
  2. pluggable.phpがロードされました
  3. plugins_loadedアクションが起動しました

これは予想される順序です。

(注:これはすべて wp-settings.php で行われます。)

3
Chip Bennett

プラグイン可能な機能を使用しないでください。

それ以降のプラグインがあなたのプラガブルを上書きしないことを決して忘れないでください !私はこの前に wp-hackersメーリングリストに を書きました。

wp-hackers には、フォールバックが実装されていないことを説明する別のスレッドもあります。 関連するTracチケット も読んでください。

0
kaiser