$input->urlSegmentStr() method

Get the string of URL segments separated by slashes

  • Note that return value lacks leading or trailing slashes.
  • URL segments must be enabled in the template settings (for template used by the page).
  • The maximum segments allowed can be adjusted in your $config->maxUrlSegments setting.
  • URL segments are populated by ProcessWire automatically on each request.
  • URL segments are already sanitized as page names.
  • The URL segment string can also be accessed by property: $input->urlSegmentStr.

Example

// Adjust output according to urlSegmentStr
// In this case our urlSegmentStr is 2 URL segments
$s = $input->urlSegmentStr();
if($s == 'photos/large') {
  // show large photos
} else if($s == 'photos/small') {
  // show small photos
} else if($s == 'map') {
  // show map
} else if(strlen($s)) {
  // something we don't recognize
  throw new Wire404Exception();
} else {
  // no URL segments present, do some default behavior
  echo $page->body;
}

Usage

// basic usage
$string = $input->urlSegmentStr();

// usage with all arguments
$string = $input->urlSegmentStr($verbose = false, array $options = []);

Arguments

NameType(s)Description
verbose (optional)bool, array

Include pagination number (pageNum) and trailing slashes, when appropriate? (default=false)

  • Use this option for a more link-ready version of the URL segment string (since 3.0.106).
  • Optionally substitute $options argument for this argument, default for $verbose option remains false (since 3.0.155+).
options (optional)array

Options to adjust behavior (since 3.0.106):

  • segments (array): Optionally specify URL segments to use, rather than those from current request. (default=[])
  • values (array): Same as segments option, but associative array converted to /key1/value1/key2/value2/ segment string. (default=[]) 3.0.155+
  • pageNum (int): Optionally specify page number to use rather than current. (default=current page number)
  • page (Page): Optionally specify Page to use for context. (default=current page)
  • verbose (bool): Verbose argument from method, applies only if $options given for $verbose argument.
  • NOTE the pageNum and page options are not applicable unless the $verbose argument is true.

Return value

string

URL segment string, i.e. segment1/segment2/segment3 or blank if none

See Also


$input methods and properties

API reference based on ProcessWire core version 3.0.244

Latest news

  • ProcessWire Weekly #559
    The 559th issue of ProcessWire Weekly brings in all the latest news from the ProcessWire community. Modules, sites, and more. Read on!
    Weekly.pw / 25 January 2025
  • ProcessWire 3.0.244 new main/master version
    ProcessWire 3.0.244 is our newest main/master/stable version. It's been more than a year in the making and is packed with tons of new features, issue fixes, optimizations and more. This post covers all the details.
    Blog / 18 January 2025
  • Subscribe to weekly ProcessWire news

“To Drupal, or to ProcessWire? The million dollar choice. We decided to make an early switch to PW. And in retrospect, ProcessWire was probably the best decision we made. Thanks are due to ProcessWire and the amazing system and set of modules that are in place.” —Unni Krishnan, Founder of PigtailPundits