$input→urlSegmentStr()
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->maxUrlSegmentssetting. - 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
| Name | Type(s) | Description |
|---|---|---|
$verbose (optional) | bool array | Include pagination number (pageNum) and trailing slashes, when appropriate? Default:false
|
$options (optional) | array | Options to adjust behavior 3.0.106:
|
Return value
stringURL segment string, i.e. segment1/segment2/segment3 or blank if none
See Also
API reference based on ProcessWire core version 3.0.252