$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.185

Twitter updates

  • Great video by @jlahijani that demonstrates his ProcessWire page builder using ProFields Repeater Matrix, the new Page Autosave + Live Preview module and Uikit 3— youtube.com/watch?v=Rb5kiU…
    13 November 2021
  • More development on page automatic save this week, plus the addition of live preview— More
    12 November 2021
  • ProcessWire 3.0.189 core updates— More
    5 November 2021

Latest news

  • ProcessWire Weekly #394
    In the 394th issue of ProcessWire Weekly we'll share the latest ProcessWire news and updates, including some highlights from the support forum, the latest weekly update from Ryan, and more. Read on!
    Weekly.pw / 27 November 2021
  • New Repeater and Repeater Matrix features
    This week we have some very useful new additions to both the core Repeater Fieldtype and the ProFields Repeater Matrix Fieldtype. This post covers all the details along with a couple of brief demonstration videos. 
    Blog / 22 October 2021
  • Subscribe to weekly ProcessWire news

“The end client and designer love the ease at which they can update the website. Training beyond how to log in wasn’t even necessary since ProcessWire’s default interface is straightforward.” —Jonathan Lahijani