- Basic
- Filter by Panel
- Filter by Hook
- Filter by Post, Pages and Categories
- Filter by Archive or Search
- Filter by Post Type
Enqueue is the process of how WordPress loads Scripts and Styles for your plugin. It could be a piece of JavaScript that is required on an certain admin page or on every post. To enqueue you must supply a Source and a Name. The Source takes a URL. To use a relative path from resources/assets folder we wrap with the Helper::assetUrl() function.
To read more about the Helper class here
Note: Enqueue does not work on Routes. You must supply them using standard
linkandscripttags.
$enqueue->front([
'as' => 'postsJS',
'src' => Helper::assetUrl('/js/post.js')
]);
$enqueue->admin([
'as' => 'adminCSS',
'src' => Helper::assetUrl('/css/admin.css'),
]);
$enqueue->login([
'as' => 'loginJS',
'src' => Helper::assetUrl('/js/login.js'),
]);
$enqueue->login([
'as' => 'loginJS',
'src' => Helper::assetUrl('/js/login.js'),
], 'footer');
$enqueue->front([
'as' => 'bootstrapCSS',
'src' => '//maxcdn.bootstrapcdn.com/bootstrap/3.3.1/css/bootstrap.min.css',
]);
It's unlikely that you would want to load a source on every panel. Therefore you can use filters to set it on specific panel:
$enqueue->admin([
'as' => 'someJS',
'src' => Helper::assetUrl('/js/some.js'),
'filter' => [ 'panel' => '*' ]
]);
$enqueue->admin([
'as' => 'someJS',
'src' => Helper::assetUrl('/js/some.js'),
'filter' => [ 'panel' => 'mainPanel' ]
]);
$enqueue->admin([
'as' => 'someJS',
'src' => Helper::assetUrl('/js/some.js'),
'filter' => [ 'panel' => ['mainPanel', 'subPanel'] ]
]);
Filtering by WordPress standard panels is referred to as Hooks
$enqueue->admin([
'as' => 'someJS',
'src' => Helper::assetUrl('/js/login.js'),
'filter' => [ 'hook' => 'edit.php' ]
]);
$enqueue->admin([
'as' => 'someJS',
'src' => Helper::assetUrl('/js/some.js'),
'filter' => [ 'hook' => ['post-new.php', 'edit.php'] ]
]);
Filtering by Post, Pages and Categories work the same. They accept IDs, Name or Slugs.
$enqueue->front([
'as' => 'someJS',
'src' => Helper::assetUrl('/js/some.js'),
'filter' => [ 'page' => '*' ]
]);
$enqueue->front([
'as' => 'someJS',
'src' => Helper::assetUrl('/js/some.js'),
'filter' => [ 'post' => '23' ]
]);
$enqueue->front([
'as' => 'someJS',
'src' => Helper::assetUrl('/js/some.js'),
'filter' => [ 'category' => ['12', '14'] ]
]);
Filtering by Archive or Search only take the * input.
$enqueue->front([
'as' => 'someJS',
'src' => Helper::assetUrl('/js/some.js'),
'filter' => [ 'search' => '*' ]
]);
$enqueue->front([
'as' => 'someJS',
'src' => Helper::assetUrl('/js/some.js'),
'filter' => [ 'archive' => '*' ]
]);
Filtering by Post Type only accepts Slugs.
$enqueue->front([
'as' => 'someJS',
'src' => Helper::assetUrl('/js/some.js'),
'filter' => [ 'postType' => 'movies' ]
]);
$enqueue->front([
'as' => 'someJS',
'src' => Helper::assetUrl('/js/some.js'),
'filter' => [ 'postType' => ['movies', 'games'] ]
]);