https://github.com/dimitribouteille/wp-module-hook
⚡ Magic hook autoloader for WordPress.
https://github.com/dimitribouteille/wp-module-hook
hooks php wordpress wordpress-actions wordpress-development wordpress-starter
Last synced: 27 days ago
JSON representation
⚡ Magic hook autoloader for WordPress.
- Host: GitHub
- URL: https://github.com/dimitribouteille/wp-module-hook
- Owner: dimitriBouteille
- License: mit
- Created: 2024-03-30T13:10:07.000Z (about 2 years ago)
- Default Branch: main
- Last Pushed: 2025-08-06T17:02:19.000Z (10 months ago)
- Last Synced: 2025-08-06T18:36:18.944Z (10 months ago)
- Topics: hooks, php, wordpress, wordpress-actions, wordpress-development, wordpress-starter
- Language: PHP
- Homepage: https://packagist.org/packages/dbout/wp-module-hook
- Size: 38.1 KB
- Stars: 3
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
Awesome Lists containing this project
README
# WordPress hook autoloader
 [](https://packagist.org/packages/dbout/wp-module-hook)
WordPress module developed for developers who want to quickly add WordPress hooks (action & filter) without having to manually add each hook in the `function.php` file (or elsewhere).
> [!TIP]
> To simplify the integration of this library, we recommend using WordPress with one of the following tools: [Bedrock](https://roots.io/bedrock/), [Themosis](https://framework.themosis.com/) or [Wordplate](https://github.com/wordplate/wordplate#readme).
## Documentation
This documentation only covers the specific points of this library, if you want to know more about WordPress `action` or `filter`, the easiest is to look at [the documentation of WordPress](https://developer.wordpress.org/plugins/hooks/).
You can find all the documentation in [the wiki](https://github.com/dimitriBouteille/wp-module-hook/wiki) or [here](#usage).
## Installation
**Requirements**
The server requirements are basically the same as for [WordPress](https://wordpress.org/about/requirements/) with the addition of a few ones :
- PHP >= 8.3
- [Composer](https://getcomposer.org/)
**Installation**
You can use [Composer](https://getcomposer.org/). Follow the [installation instructions](https://getcomposer.org/doc/00-intro.md) if you do not already have composer installed.
~~~bash
composer require dbout/wp-module-hook
~~~
In your PHP script, make sure you include the autoloader:
~~~php
require __DIR__ . '/vendor/autoload.php';
~~~
## Usage
Before creating your first hook, you must initialize the module. It is advisable to add this code at the beginning of the `functions.php` file of your theme or in a `mu-plugin`.
```php
$loader = new \Dbout\Framework\Hook\HookLoader(
directory: get_template_directory() . '/hooks',
);
$loader->register();
```
Now you have initialized the module, you just need to create your first action in the hooks folder in your theme.
```php
use Dbout\Framework\Hook\Attributes\Action;
use Dbout\Framework\Hook\Attributes\Filter;
class MyFirstHook {
#[Action(name: 'wp_dashboard_setup', priority: 999)]
public function setupDashboard(): void
{
// Do something
}
#[Filter(name: 'crontrol/filtered-events', acceptedArgs: 2)]
public function filterEvents(array $filtered, array $events): array
{
// Do something
return $filtered;
}
}
```
## Contributing
💕 🦄 We encourage you to contribute to this repository, so everyone can benefit from new features, bug fixes, and any other improvements. Have a look at our [contributing guidelines](CONTRIBUTING.md) to find out how to raise a pull request.
## Licence
Licensed under the MIT license, see [LICENSE](LICENSE).