Como creo ya lo dijeron, una
hook es un ancla, tu te engancha a esa
hook para que tu funcion se ejecute en ese lugar sin editar los archivos. Por ejemplo, abre el archivo index.php y busca:
$plugins->run_hooks("index_start");
Cambialo por:
$plugins->run_hooks("index_start");
foo();
Tu funcion se ejecutara donde quieres, pero para evadir ediciones de archivos creas tu plugin y añades lo siguiente:
$plugins->add_hook("index_start", "foo");
Y elr esultado sera muy seguramente el mismo.