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
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 (since 3.0.106):
|
Return value
string
URL segment string, i.e. segment1/segment2/segment3
or blank if none
See Also
API reference based on ProcessWire core version 3.0.236