# hooks

Hook into Kirby events and execute your functions in the background

****

****

There are two ways to register hooks: <a href="https://getkirby.com/docs/reference/plugins/extensions/hooks">In a plugin</a> or in your `config.php`:

```php "/site/config/config.php"
return [
  'hooks' => [
    'page.delete:before' => function ($page) {
      // do something before a page gets deleted
    }
  ]
];
```

<info>
Find **<a href="https://getkirby.com/docs/reference/plugins/extensions/hooks">more detailed information about hooks</a>** and their usage in the corresponding plugin docs.
</info>

## Available hooks

<nav class="auto-fill mb-12 text-sm" style="--min: 20rem; --gap: var(--spacing-1)">
		<a class="block p-3 bg-light" href="https://getkirby.com/docs/reference/plugins/hooks/file-changename-after" style="text-decoration: none">
		<strong class="block">file.changeName:after</strong>
			</a>
		<a class="block p-3 bg-light" href="https://getkirby.com/docs/reference/plugins/hooks/file-changename-before" style="text-decoration: none">
		<strong class="block">file.changeName:before</strong>
			</a>
		<a class="block p-3 bg-light" href="https://getkirby.com/docs/reference/plugins/hooks/file-changesort-after" style="text-decoration: none">
		<strong class="block">file.changeSort:after</strong>
			</a>
		<a class="block p-3 bg-light" href="https://getkirby.com/docs/reference/plugins/hooks/file-changesort-before" style="text-decoration: none">
		<strong class="block">file.changeSort:before</strong>
			</a>
		<a class="block p-3 bg-light" href="https://getkirby.com/docs/reference/plugins/hooks/file-create-after" style="text-decoration: none">
		<strong class="block">file.create:after</strong>
			</a>
		<a class="block p-3 bg-light" href="https://getkirby.com/docs/reference/plugins/hooks/file-create-before" style="text-decoration: none">
		<strong class="block">file.create:before</strong>
			</a>
		<a class="block p-3 bg-light" href="https://getkirby.com/docs/reference/plugins/hooks/file-delete-after" style="text-decoration: none">
		<strong class="block">file.delete:after</strong>
			</a>
		<a class="block p-3 bg-light" href="https://getkirby.com/docs/reference/plugins/hooks/file-delete-before" style="text-decoration: none">
		<strong class="block">file.delete:before</strong>
			</a>
		<a class="block p-3 bg-light" href="https://getkirby.com/docs/reference/plugins/hooks/file-replace-after" style="text-decoration: none">
		<strong class="block">file.replace:after</strong>
			</a>
		<a class="block p-3 bg-light" href="https://getkirby.com/docs/reference/plugins/hooks/file-replace-before" style="text-decoration: none">
		<strong class="block">file.replace:before</strong>
			</a>
		<a class="block p-3 bg-light" href="https://getkirby.com/docs/reference/plugins/hooks/file-update-after" style="text-decoration: none">
		<strong class="block">file.update:after</strong>
			</a>
		<a class="block p-3 bg-light" href="https://getkirby.com/docs/reference/plugins/hooks/file-update-before" style="text-decoration: none">
		<strong class="block">file.update:before</strong>
			</a>
		<a class="block p-3 bg-light" href="https://getkirby.com/docs/reference/plugins/hooks/kirbytags-after" style="text-decoration: none">
		<strong class="block">kirbytags:after</strong>
			</a>
		<a class="block p-3 bg-light" href="https://getkirby.com/docs/reference/plugins/hooks/kirbytags-before" style="text-decoration: none">
		<strong class="block">kirbytags:before</strong>
			</a>
		<a class="block p-3 bg-light" href="https://getkirby.com/docs/reference/plugins/hooks/kirbytext-after" style="text-decoration: none">
		<strong class="block">kirbytext:after</strong>
			</a>
		<a class="block p-3 bg-light" href="https://getkirby.com/docs/reference/plugins/hooks/kirbytext-before" style="text-decoration: none">
		<strong class="block">kirbytext:before</strong>
			</a>
		<a class="block p-3 bg-light" href="https://getkirby.com/docs/reference/plugins/hooks/language-create-after" style="text-decoration: none">
		<strong class="block">language.create:after</strong>
			</a>
		<a class="block p-3 bg-light" href="https://getkirby.com/docs/reference/plugins/hooks/language-create-before" style="text-decoration: none">
		<strong class="block">language.create:before</strong>
			</a>
		<a class="block p-3 bg-light" href="https://getkirby.com/docs/reference/plugins/hooks/language-delete-after" style="text-decoration: none">
		<strong class="block">language.delete:after</strong>
			</a>
		<a class="block p-3 bg-light" href="https://getkirby.com/docs/reference/plugins/hooks/language-delete-before" style="text-decoration: none">
		<strong class="block">language.delete:before</strong>
			</a>
		<a class="block p-3 bg-light" href="https://getkirby.com/docs/reference/plugins/hooks/language-update-after" style="text-decoration: none">
		<strong class="block">language.update:after</strong>
			</a>
		<a class="block p-3 bg-light" href="https://getkirby.com/docs/reference/plugins/hooks/language-update-before" style="text-decoration: none">
		<strong class="block">language.update:before</strong>
			</a>
		<a class="block p-3 bg-light" href="https://getkirby.com/docs/reference/plugins/hooks/page-changenum-after" style="text-decoration: none">
		<strong class="block">page.changeNum:after</strong>
			</a>
		<a class="block p-3 bg-light" href="https://getkirby.com/docs/reference/plugins/hooks/page-changenum-before" style="text-decoration: none">
		<strong class="block">page.changeNum:before</strong>
			</a>
		<a class="block p-3 bg-light" href="https://getkirby.com/docs/reference/plugins/hooks/page-changeslug-after" style="text-decoration: none">
		<strong class="block">page.changeSlug:after</strong>
			</a>
		<a class="block p-3 bg-light" href="https://getkirby.com/docs/reference/plugins/hooks/page-changeslug-before" style="text-decoration: none">
		<strong class="block">page.changeSlug:before</strong>
			</a>
		<a class="block p-3 bg-light" href="https://getkirby.com/docs/reference/plugins/hooks/page-changestatus-after" style="text-decoration: none">
		<strong class="block">page.changeStatus:after</strong>
			</a>
		<a class="block p-3 bg-light" href="https://getkirby.com/docs/reference/plugins/hooks/page-changestatus-before" style="text-decoration: none">
		<strong class="block">page.changeStatus:before</strong>
			</a>
		<a class="block p-3 bg-light" href="https://getkirby.com/docs/reference/plugins/hooks/page-changetemplate-after" style="text-decoration: none">
		<strong class="block">page.changeTemplate:after</strong>
			</a>
		<a class="block p-3 bg-light" href="https://getkirby.com/docs/reference/plugins/hooks/page-changetemplate-before" style="text-decoration: none">
		<strong class="block">page.changeTemplate:before</strong>
			</a>
		<a class="block p-3 bg-light" href="https://getkirby.com/docs/reference/plugins/hooks/page-changetitle-after" style="text-decoration: none">
		<strong class="block">page.changeTitle:after</strong>
			</a>
		<a class="block p-3 bg-light" href="https://getkirby.com/docs/reference/plugins/hooks/page-changetitle-before" style="text-decoration: none">
		<strong class="block">page.changeTitle:before</strong>
			</a>
		<a class="block p-3 bg-light" href="https://getkirby.com/docs/reference/plugins/hooks/page-create-after" style="text-decoration: none">
		<strong class="block">page.create:after</strong>
			</a>
		<a class="block p-3 bg-light" href="https://getkirby.com/docs/reference/plugins/hooks/page-create-before" style="text-decoration: none">
		<strong class="block">page.create:before</strong>
			</a>
		<a class="block p-3 bg-light" href="https://getkirby.com/docs/reference/plugins/hooks/page-delete-after" style="text-decoration: none">
		<strong class="block">page.delete:after</strong>
			</a>
		<a class="block p-3 bg-light" href="https://getkirby.com/docs/reference/plugins/hooks/page-delete-before" style="text-decoration: none">
		<strong class="block">page.delete:before</strong>
			</a>
		<a class="block p-3 bg-light" href="https://getkirby.com/docs/reference/plugins/hooks/page-duplicate-after" style="text-decoration: none">
		<strong class="block">page.duplicate:after</strong>
			</a>
		<a class="block p-3 bg-light" href="https://getkirby.com/docs/reference/plugins/hooks/page-duplicate-before" style="text-decoration: none">
		<strong class="block">page.duplicate:before</strong>
			</a>
		<a class="block p-3 bg-light" href="https://getkirby.com/docs/reference/plugins/hooks/page-render-after" style="text-decoration: none">
		<strong class="block">page.render:after</strong>
			</a>
		<a class="block p-3 bg-light" href="https://getkirby.com/docs/reference/plugins/hooks/page-render-before" style="text-decoration: none">
		<strong class="block">page.render:before</strong>
			</a>
		<a class="block p-3 bg-light" href="https://getkirby.com/docs/reference/plugins/hooks/page-update-after" style="text-decoration: none">
		<strong class="block">page.update:after</strong>
			</a>
		<a class="block p-3 bg-light" href="https://getkirby.com/docs/reference/plugins/hooks/page-update-before" style="text-decoration: none">
		<strong class="block">page.update:before</strong>
			</a>
		<a class="block p-3 bg-light" href="https://getkirby.com/docs/reference/plugins/hooks/panel-route-after" style="text-decoration: none">
		<strong class="block">panel.route:after</strong>
			</a>
		<a class="block p-3 bg-light" href="https://getkirby.com/docs/reference/plugins/hooks/panel-route-before" style="text-decoration: none">
		<strong class="block">panel.route:before</strong>
			</a>
		<a class="block p-3 bg-light" href="https://getkirby.com/docs/reference/plugins/hooks/route-after" style="text-decoration: none">
		<strong class="block">route:after</strong>
			</a>
		<a class="block p-3 bg-light" href="https://getkirby.com/docs/reference/plugins/hooks/route-before" style="text-decoration: none">
		<strong class="block">route:before</strong>
			</a>
		<a class="block p-3 bg-light" href="https://getkirby.com/docs/reference/plugins/hooks/site-changetitle-after" style="text-decoration: none">
		<strong class="block">site.changeTitle:after</strong>
			</a>
		<a class="block p-3 bg-light" href="https://getkirby.com/docs/reference/plugins/hooks/site-changetitle-before" style="text-decoration: none">
		<strong class="block">site.changeTitle:before</strong>
			</a>
		<a class="block p-3 bg-light" href="https://getkirby.com/docs/reference/plugins/hooks/site-update-after" style="text-decoration: none">
		<strong class="block">site.update:after</strong>
			</a>
		<a class="block p-3 bg-light" href="https://getkirby.com/docs/reference/plugins/hooks/site-update-before" style="text-decoration: none">
		<strong class="block">site.update:before</strong>
			</a>
		<a class="block p-3 bg-light" href="https://getkirby.com/docs/reference/plugins/hooks/system-exception" style="text-decoration: none">
		<strong class="block">system.exception</strong>
			</a>
		<a class="block p-3 bg-light" href="https://getkirby.com/docs/reference/plugins/hooks/system-loadplugins-after" style="text-decoration: none">
		<strong class="block">system.loadPlugins:after</strong>
			</a>
		<a class="block p-3 bg-light" href="https://getkirby.com/docs/reference/plugins/hooks/user-changeemail-after" style="text-decoration: none">
		<strong class="block">user.changeEmail:after</strong>
			</a>
		<a class="block p-3 bg-light" href="https://getkirby.com/docs/reference/plugins/hooks/user-changeemail-before" style="text-decoration: none">
		<strong class="block">user.changeEmail:before</strong>
			</a>
		<a class="block p-3 bg-light" href="https://getkirby.com/docs/reference/plugins/hooks/user-changelanguage-after" style="text-decoration: none">
		<strong class="block">user.changeLanguage:after</strong>
			</a>
		<a class="block p-3 bg-light" href="https://getkirby.com/docs/reference/plugins/hooks/user-changelanguage-before" style="text-decoration: none">
		<strong class="block">user.changeLanguage:before</strong>
			</a>
		<a class="block p-3 bg-light" href="https://getkirby.com/docs/reference/plugins/hooks/user-changename-after" style="text-decoration: none">
		<strong class="block">user.changeName:after</strong>
			</a>
		<a class="block p-3 bg-light" href="https://getkirby.com/docs/reference/plugins/hooks/user-changename-before" style="text-decoration: none">
		<strong class="block">user.changeName:before</strong>
			</a>
		<a class="block p-3 bg-light" href="https://getkirby.com/docs/reference/plugins/hooks/user-changepassword-after" style="text-decoration: none">
		<strong class="block">user.changePassword:after</strong>
			</a>
		<a class="block p-3 bg-light" href="https://getkirby.com/docs/reference/plugins/hooks/user-changepassword-before" style="text-decoration: none">
		<strong class="block">user.changePassword:before</strong>
			</a>
		<a class="block p-3 bg-light" href="https://getkirby.com/docs/reference/plugins/hooks/user-changerole-after" style="text-decoration: none">
		<strong class="block">user.changeRole:after</strong>
			</a>
		<a class="block p-3 bg-light" href="https://getkirby.com/docs/reference/plugins/hooks/user-changerole-before" style="text-decoration: none">
		<strong class="block">user.changeRole:before</strong>
			</a>
		<a class="block p-3 bg-light" href="https://getkirby.com/docs/reference/plugins/hooks/user-create-after" style="text-decoration: none">
		<strong class="block">user.create:after</strong>
			</a>
		<a class="block p-3 bg-light" href="https://getkirby.com/docs/reference/plugins/hooks/user-create-before" style="text-decoration: none">
		<strong class="block">user.create:before</strong>
			</a>
		<a class="block p-3 bg-light" href="https://getkirby.com/docs/reference/plugins/hooks/user-delete-after" style="text-decoration: none">
		<strong class="block">user.delete:after</strong>
			</a>
		<a class="block p-3 bg-light" href="https://getkirby.com/docs/reference/plugins/hooks/user-delete-before" style="text-decoration: none">
		<strong class="block">user.delete:before</strong>
			</a>
		<a class="block p-3 bg-light" href="https://getkirby.com/docs/reference/plugins/hooks/user-login-after" style="text-decoration: none">
		<strong class="block">user.login:after</strong>
			</a>
		<a class="block p-3 bg-light" href="https://getkirby.com/docs/reference/plugins/hooks/user-login-before" style="text-decoration: none">
		<strong class="block">user.login:before</strong>
			</a>
		<a class="block p-3 bg-light" href="https://getkirby.com/docs/reference/plugins/hooks/user-logout-after" style="text-decoration: none">
		<strong class="block">user.logout:after</strong>
			</a>
		<a class="block p-3 bg-light" href="https://getkirby.com/docs/reference/plugins/hooks/user-logout-before" style="text-decoration: none">
		<strong class="block">user.logout:before</strong>
			</a>
		<a class="block p-3 bg-light" href="https://getkirby.com/docs/reference/plugins/hooks/user-update-after" style="text-decoration: none">
		<strong class="block">user.update:after</strong>
			</a>
		<a class="block p-3 bg-light" href="https://getkirby.com/docs/reference/plugins/hooks/user-update-before" style="text-decoration: none">
		<strong class="block">user.update:before</strong>
			</a>
	</nav>