WP_Hook znají všichni, kteří někdy použili funkce add_action, nebo add_filter. A v jeho fungování dojde ve WordPress 4.7 ke změně.
Přestože to zní dramaticky, 90% pluginů a šablon budou fungovat dál, bez jakékoliv změny.
Co přesně se tedy změní?
Jednoduše řečeno globální proměnná $wp_filter již nadále nebude pole, ale objekt.
To v praxi ovlivní pouze ty developery, kteří místo add_action a add_filter, přistupuji k WP_Hook přes $wp_filter.
Příklad:
$wp_filter
[
'save_post'
][10][
'my_special_key'
] =
array
(
'function'
=>
'my_callback_function'
,
'accepted_args'
=> 2 );
Tento zápis je ekvivalentní k add_action( ‚save_post‘, ‚my_callback_function‘, 2, 10 );
Použití takovým způsobem bude vracet false. Pokud však z nějakého důvodu budete chtít obejít add_action, musíte vytvořit nový object:
$wp_filter
[
'save_post'
] =
new
WP_Hook();
Následně do objectu přidat callback funkci.
Doplnění
V případě, že budete z nějakého důvodu potřebovat manipulovat přímo s $wp_filter, do WP_Hook budou implementovány ArrayAccess a IteratorAggregate. Pomocí těchto rozhraní, budete schopni upravovat například priority callbacků.
Zdroj: https://make.wordpress.org/core/2016/09/08/wp_hook-next-generation-actions-and-filters/