PLUBO Routes WP Registry grade A. No security issues foundWP RegistryNo security issues foundOpen the reportA
Create custom WordPress routes and redirects, restrict access by roles and/or capabilities. Routes made simple
Install
This is the repository archive. It installs, but the folder name will carry the branch suffix and updates will not flow.
Install straight from GitHub with WP-CLI:
wp plugin install https://github.com/joanrodas/plubo-routes/archive/refs/heads/main.zip
WordPress routes made simple.
✔️ No need to write rewrite rules and tags manually\ ✔️ Automatically flush rewrite rules when the routes change\ ✔️ Custom redirects and action routes\ ✔️ Easily extendable with hooks\ ✔️ Easy to use with Sage 10
Getting started
composer require joanrodas/plubo-routes
You can also install Plubo Routes as a standalone WordPress plugin, simply downloading the zip and placing it in the plugins folder.
Adding new routes
There are different types of routes:
How to add a new route
You can add new routes using the following filter:
PluboRoutes\RoutesProcessor::init();
add_filter( 'plubo/routes', array($this, 'add_routes') );
public function add_routes( $routes ) {
//Your routes
return $routes;
}
Basic routes
Basic routes take 3 parameters:
| Parameter | Type |
|---|---|
| Route Path | String |
| Template file name | String | Callable |
| Config | Array (optional) |
Examples:
use PluboRoutes\Route\Route;
add_filter( 'plubo/routes', array($this, 'add_routes') );
public function add_routes( $routes ) {
$routes[] = new Route('clients/list', 'template_name');
//SAGE 10 example
$routes[] = new Route(
'dashboard/{subpage:slug}',
function($matches) {
$subpage = 'dashboard/' . $matches['subpage'];
return locate_template( app('sage.finder')->locate($subpage) );
},
[
'name' => 'my-route'
]
);
return $routes;
}
Available syntax
You can use the format {variable_name:type} with any of the available types:
- number (numbers only)
- word (a-Z only)
- slug (a valid WordPress slug)
- date (yyyy-mm-dd date)
- year (4 digits)
- month (01-12)
- day (01-31)
- digit (single digit 0-9)
- jwt (JWT token)
- ip (IPv4)
You can also use custom regex patterns using the format {variable_name:regex_pattern} like {author:([a-z0-9-]+)}
Changing general template path
By default, Plubo Routes will search the template inside your theme, but you can use a hook to chenge the default path.
If you use Sage 10, you could add something like this:
add_filter( 'plubo/template', function($template) {
return app('sage.finder')->locate($template);
});
Custom Actions
Named routes provide a hook to execute your custom actions:
add_action('plubo/route_{route_name}', function($matches) {
//Do something
});
Contributions
Feel free to contribute to the project, suggesting improvements, reporting bugs and coding.
Releases
Newest 25 of 32 recorded releases.
These releases are tags only. The author does not attach a packaged zip, so there are no download counts to report.