A modern PHP package for WordPress hook (action/filter) management with callback resolution and reflection caching.
composer require pollora/hookuse Pollora\Hook\Action;
use Pollora\Hook\Filter;
$action = new Action;
$filter = new Filter;
// Register action
$action->add('init', function () {
// runs on WordPress init
});
// Register filter
$filter->add('the_content', function (string $content): string {
return $content . '<p>Appended!</p>';
});
// Execute action
$action->do('my_custom_action', $arg1, $arg2);
// Apply filter
$filtered = $filter->apply('my_filter', $value);
// Remove hook
$action->remove('init', $callback);Pollora framework users: When the framework is available, prefer the Laravel facades
Pollora\Support\Facades\ActionandPollora\Support\Facades\Filterfor full DI container support. A notice is emitted if you use the standalone classes within the framework.
// Class with method matching hook name (StudlyCase convention)
$action->add('wp_loaded', MyInitializer::class);
// Resolves to [new MyInitializer, 'wpLoaded']
// With dependency injection
$action->setCallbackResolver($myResolver);
$action->add('wp_loaded', MyInitializer::class);
// Resolves via $myResolver->resolve(MyInitializer::class)See docs/hooks.md for full documentation.
composer testGPL-2.0-or-later