Developer Docs
  • Getting started
  • Tutorials
    • Integrate your theme with HivePress
    • Create a custom HivePress extension
  • Framework
    • Blocks
      • Callback
      • Container
      • Content
      • Form
      • Menu
      • Modal
      • Part
      • Section
      • Template
      • Toggle
    • Components
      • Cache
      • Helper
      • Request
      • Router
      • Translator
    • Configurations
      • Comment types
      • Image sizes
      • Meta boxes
      • Post types
      • Scripts
      • Settings
      • Strings
      • Styles
      • Taxonomies
    • Controllers
    • Emails
    • Fields
      • Checkbox
      • Checkboxes
      • Date
      • Date Range
      • Email
      • File
      • Number
      • Number Range
      • Password
      • Phone
      • Radio Buttons
      • Repeater
      • Select
      • Text
      • Textarea
      • Time
      • URL
    • Forms
    • Menus
    • Models
      • Making queries
      • Creating models
      • Customizing models
    • Templates
  • Resources
    • Code snippets
    • Code reference
    • Hook reference
    • REST API
Powered by GitBook
On this page
  • Quick example
  • Getting URLs

Was this helpful?

  1. Framework
  2. Components

Router

This component implements callbacks and methods for managing URLs and redirects. In HivePress, each URL is registered as a route with an array of parameters. This makes URLs customizable and accessible via the Router methods.

To get the current route name, call the get_current_route_name method:

$route = hivepress()->router->get_current_route_name();

You can also customize any URL route via the hivepress/v1/routes filter hook. Remember to refresh permalinks in Settings > Permalinks after making any URL changes.

Quick example

The code example below redirects non-registered users from the listing page to the login page. After the user is logged in or registered, there's a redirect back to the initial listing page.

add_action(
	'template_redirect',
	function() {
		if ( ! is_user_logged_in() && hivepress()->router->get_current_route_name() === 'listing_view_page' ) {
			wp_safe_redirect( hivepress()->router->get_return_url( 'user_login_page' ) );

			exit;
		}
	}
);

Getting URLs

To get the current URL, call the get_current_url method:

$url = hivepress()->router->get_current_url();

For getting a URL by the route name, use the get_url method:

$url = hivepress()->router->get_url( 'my_custom_route' );

Some routes require extra URL parameters. The code example below gets a listing URL by ID:

$url = hivepress()->router->get_url( 'listing_view_page', [ 'listing_id' => 123 ] );

To get a URL that redirects users back after some action (e.g. logging in), use the get_return_url method:

$url = hivepress()->router->get_return_url( 'my_custom_route' );

If you need to get the redirect URL from the current URL query parameters, call the get_redirect_url method:

$url = hivepress()->router->get_redirect_url();
PreviousRequestNextTranslator

Last updated 2 years ago

Was this helpful?