In the file
wp-includes/class-wp.php there is a hook run which is simply named
This, as far as I can tell, seems to be the earliest hook in which the
$post object variable exists. The hook is passed the
&$this object which the comments state:
references the WP object. It allows for accessing the properties and methods to further manipulate the object.
Unlike some other hooks which may run more than one time during a single page load (I’m looking at you
'get_posts') this is run within
WP::main() and is called only once.
That’s a nice catch.
Also note the
& in the argument being passed from the hook. That means your hook can alter any of the variables in the argument as it’s passed by reference. Such great power!
I recently used this in a plugin to populate some class variables based on the current post being loaded and found other hooks triggering too late in the load process.