WordPress Utilities
kaiseki/wp-dequeue-assets
Conditionally dequeue and deregister WordPress scripts and styles using context filters.
A kaiseki/wp-hook HookProviderInterface wired through ConfigProvider: list the script/style
handles you want gone and, optionally, the condition under which to remove them. A condition is either
true (always, on the front end) or a kaiseki/wp-context ContextFilterInterface — given as an
instance, a class-string resolved from the container, or a list of filters combined into a
ContextFilterPipeline — so you can scope removal to specific templates, post types, etc.
Installation
composer require kaiseki/wp-dequeue-assets
Requires PHP 8.2 or newer.
Usage
Register ConfigProvider with your laminas-style config aggregator and configure the
dequeue_assets key:
use Kaiseki\WordPress\DequeueAssets\DequeueAssets;
return [
'dequeue_assets' => [
'scripts' => [
// handle => true (always) | ContextFilter class-string | list of filters
'wp-embed' => true,
'comment-reply' => true,
'some-plugin-script' => IsFrontPage::class,
],
'styles' => [
'wp-block-library' => true,
],
],
'hook' => [
'provider' => [
DequeueAssets::class,
],
],
];
ConfigProvider registers DequeueAssetsFactory, which reads the dequeue_assets config and resolves
each context filter (or list of filters, combined into a ContextFilterPipeline) from the container.
Removal runs on wp_enqueue_scripts and wp_footer (priority 999) and is skipped in the admin.
Development
composer install
composer check # check-deps, cs-check, phpstan
License
MIT — see LICENSE.