Download the PHP package underpin/route-loader without Composer
On this page you can find all versions of the php package underpin/route-loader. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download underpin/route-loader
More information about underpin/route-loader
Files in underpin/route-loader
Package route-loader
Short Description Custom route loader for Underpin
License GPL-2.0-or-later
Informations about the package route-loader
Underpin Route Loader
Loader That assists with adding custom routes to a WordPress website.
Installation
Using Composer
composer require underpin/route-loader
Manually
This plugin uses a built-in autoloader, so as long as it is required before Underpin, it should work as-expected.
require_once(__DIR__ . '/route-loader/bootstrap.php');
Setup
- Install Underpin. See Underpin Docs
- Register new routes as-needed.
Example
A very basic example could look something like this.
Alternatively, you can extend Route
and reference the extended class directly. This would allow you to use Underpin's
Template loader trait, as well as other more-advanced class-based utilities:
Middleware
Since there are many ways a route can be used, this loader simply registers the route to use, ensures any custom query params are whitelisted, and ensures that they are sorted to minimize collisions with routes. In-order to do something with your route, you need to register additional actions. To help facilitate common actions, this loader comes with middleware that can extend the behavior of routes.
Template Middleware
The Use_Template
middleware allows you to render a custom template when this route is used.
Prevent Query Middleware
By default, WordPress makes a database call on every page load to load a post object in the query. Sometimes, however, this is not necessary on custom routes. However, Even if you don't specify a post, WordPress will load a default post instead. This causes an additional query and can cause other unwanted behaviors, as well.
To circumvent this, use the Prevent_Main_Query
middleware, like so:
This middleware will stop the primary query from running, while leaving the global WP_Query otherwise intact.
Working With Routes
Testing for Current Route
Usually you'll need to do some kind-of dynamic logic to determine certain behaviors that only run when the current page
matches your route. This loader helps facilitate that with is_current_route()
, which can be used like so:
If you happen to have the Route
object directly, you can access it like so: