$pages->getByPath() method

Get a page by its path, similar to $pages->get('/path/to/page/') but with more options

  1. There are no exclusions for page status or access. If needed, you should validate access on any page returned from this method.
  2. In a multi-language environment, you must specify the $useLanguages option to be true, if you want a result for a $path that is (or might be) a multi-language path. Otherwise, multi-language paths will make this method return a NullPage (or 0 if getID option is true).
  3. Partial paths may also match, so long as the partial path is completely unique in the site. If you don't want that behavior, double check the path of the returned page.

Available since version 3.0.6.

Example

// Get a page by path 
$p = $pages->getByPath('/skyscrapers/atlanta/191-peachtree/');

// Now validate that the page we retrieved is valid
if($p->id && $p->viewable()) {
  // Page is valid to display
}

// Get a page by path with options
$p = $pages->getByPath('/products/widget/', [
  'useLanguages' => true,
  'useHistory' => true
]);

Usage

// basic usage
$page = $pages->getByPath(string $path);

// usage with all arguments
$page = $pages->getByPath(string $path, $options = []);

Arguments

NameType(s)Description
pathstring

Path of page you want to retrieve.

options (optional)array, bool

array of options (below), or specify boolean for $useLanguages option only.

  • getID (int): Specify true to just return the page ID (default=false).
  • useLanguages (bool): Specify true to allow retrieval by language-specific paths (default=false).
  • useHistory (bool): Allow use of previous paths used by the page, if PagePathHistory module is installed (default=false).

Return value

Page int


$pages methods and properties

API reference based on ProcessWire core version 3.0.148

Twitter updates

  • Weekly update for Jan 10, 2020—front-end file uploads in LoginRegisterPro with InputfieldFrontendFile module: More
    10 January 2020
  • If you haven't seen it yet, be sure to check out this great infographic by @teppokoivula in ProcessWire Weekly #294— How ProcessWire professionals work—the results of our recent weekly polls summarised: weekly.pw/issue/294/#how…
    3 January 2020
  • Today we have a new master version released, 3.0.148! There are 25 new versions worth of upgrades, fixes and optimizations in this new master version, relative to the previous. In this post we take a closer look at what’s new, how to upgrade, & more— More
    3 January 2020

Latest news

  • ProcessWire Weekly #298
    In the 298th issue of ProcessWire Weekly we're going to take a quick look at the latest core updates, introduce the PWGeeks project, and highlight some recently released ProcessWire content. Read on!
    Weekly.pw / 25 January 2020
  • ProcessWire 3.0.148 new master
    Today we have a new master version released, version 3.0.148! The last master version was 3.0.123, so there are 25 new versions worth of upgrades, fixes and optimizations in this new master version, relative to the previous. In this post we’ll take a closer look at what’s new, how to upgrade, and more.
    Blog / 3 January 2020
  • Subscribe to weekly ProcessWire news

“I am currently managing a ProcessWire site with 2 million+ pages. It’s admirably fast, and much, much faster than any other CMS we tested.” —Nickie, Web developer