I got this image from one E-book for WP plugin development. Could you please clarify me why the Plugins are loaded before Pluggables.
WordPress Development Stack Exchange is a question and answer site for WordPress developers and administrators. It only takes a minute to sign up.Sign up to join this community
Directly from source for
<?php /** * These functions can be replaced via plugins. If plugins do not redefine these * functions, then these will be used instead. * * @package WordPress */ ?>
So, there's your answer, the functions in
pluggable.php are intended to be overridden by Plugins.
Re: load order:
See this post by Konstantin Kovshenin. The relevant points (10-15):
wp_get_active_and_valid_plugins()retrieves the list of all active plugin files for loading and includes them. This is the point where your plugin code gets executed, functions, classes defined, etc.
wp-includes/wp-pluggable-deprecated.phpwhich include functions (and deprecated functions) that can be redefined by plugins. Like
wp_mail()for more advanced mailing,
wp_authenticate()for alternative authentication methods, etc.
wp_set_internal_encoding()is called to set the internal encoding according to the blog_charset option.
wp_cache_postload()is called if object caching is enabled.
- At this point a
plugins_loadedaction is fired. This is the very first action (after muplugins_loaded fired before loading the non-multi-site WordPress plugins) that you can hook into, it comes before the init because WordPress has not been initialized yet, at least not fully.
plugins_loadedaction is fired
Which is the expected order.
(Note: this all takes place in
Please note that you can never be sure, that a later plugin doesn't override your pluggable! I wrote on wp-hackers mailing list about this some time ago.