$page / Page

Class used by all Page objects in ProcessWire.

The $page API variable represents the current page being viewed. However, the documentation here also applies to all Page objects that you may work with in the API. We use $page as the most common example throughout the documentation, but you can substitute that with any variable name representing a Page.


Click any linked item for full usage details and examples. Hookable methods are indicated with the icon. In addition to those shown below, the Page class also inherits all the methods and properties of: WireData and Wire.

Show $var?     Show args?       Only hookable?    

Common

NameReturnSummary 
$page->child()
Page NullPage

Return the page’s first single child that matches the given selector.


Can also be used as property: $page->child
 
$page->children()
PageArray array

Return this page’s children, optionally filtered by a selector


Can also be used as property: $page->children
 
$page->find()
PageArray

Find descendant pages matching given selector

 
$page->findOne()
Page NullPage

Find one descendant page matching given selector

 
$page->get(string $key)
mixed

Get the value of a Page property (see details for several options)

 
$page->getMultiple($keys)
array

Get multiple Page property/field values in an array

 
$page->hasChildren()
int

Return the number of visible children, optionally with conditions


Can also be used as property: $page->hasChildren
 
$page->hasFile(string $file)
bool string

Does Page have given filename in its files directory?

 
$page->hasStatus($status)
bool

Does this page have the given status?

 
$page->httpUrl()
string

Returns the URL to the page, including scheme and hostname


Can also be used as property: $page->httpUrl
 
$page->id int The numbered ID of the current page  
$page->if($key)
mixed string bool

If value is available for $key return or call $yes condition (with optional $no condition)

$page->name string The name assigned to the page, as it appears in the URL  
$page->numChildren()
int

Return number of all children, optionally with conditions


Can also be used as property: $page->numChildren
 
$page->numParents()
int

Return number of parents (depth relative to homepage) that this page has, optionally filtered by a selector


Can also be used as property: $page->numParents
 
$page->of()
bool

Get or set the current output formatting state of the page

 
$page->parent()
Page

Return this page’s parent Page, or–if given a selector–the closest matching parent.


Can also be used as property: $page->parent
 
$page->parents()
PageArray

Return this page’s parent pages, or the parent pages matching the given selector.


Can also be used as property: $page->parents
 
$page->path()
string

Returns the Page’s path from the ProcessWire installation root.


Can also be used as property: $page->path
$page->preload()
array

Preload multiple fields together as a group (experimental)

 
$page->rootParent()
Page

Get the lowest-level, non-homepage parent of this page


Can also be used as property: $page->rootParent
$page->save()
bool

Save the entire page to the database, or just a field from it

 
$page->saveFields($fields)
array

Save only the given named fields for this page

 
$page->set(string $key, mixed $value)
Page WireData

Set the value of a page property

 
$page->template()
Template null

Get or set template


Can also be used as property: $page->template
 
$page->url()
string

Returns the URL to the page (optionally with additional $options)


Can also be used as property: $page->url
 

Traversal

NameReturnSummary 
$page->child()
Page NullPage

Return the page’s first single child that matches the given selector.


Can also be used as property: $page->child
 
$page->children()
PageArray array

Return this page’s children, optionally filtered by a selector


Can also be used as property: $page->children
 
$page->closest($selector)
Page NullPage

Find the closest parent page matching your selector

 
$page->descendant()
Page NullPageFind one descendant page, alias of Page::findOne(), see that method for details. 3.0.116
$page->descendants()
PageArrayFind descendant pages, alias of Page::find(), see that method for details. 3.0.116
$page->find()
PageArray

Find descendant pages matching given selector

 
$page->findOne()
Page NullPage

Find one descendant page matching given selector

 
$page->hasChildren()
int

Return the number of visible children, optionally with conditions


Can also be used as property: $page->hasChildren
 
$page->hasLinks int Number of visible pages (to current user) linking to this page in Textarea/HTML fields.  
$page->hasReferences int Number of visible pages (to current user) referencing this page with page reference fields.  
$page->index()
int

Return the index/position of this page relative to siblings.


Can also be used as property: $page->index
 
$page->links()
PageArray

Return pages linking to this one (in Textarea/HTML fields)


Can also be used as property: $page->links
$page->matches($s)
bool

Given a selector, return whether or not this Page matches using runtime/memory comparison

 
$page->matchesDatabase($s)
bool

Given a selector, return whether or not this Page matches by querying the database

 
$page->next()
Page NullPage

Return the next sibling page


Can also be used as property: $page->next
 
$page->nextAll()
PageArray int

Return all sibling pages after this one, optionally matching a selector

 
$page->nextUntil()
PageArray

Return all sibling pages after this one until matching the one specified

 
$page->numChildren()
int

Return number of all children, optionally with conditions


Can also be used as property: $page->numChildren
 
$page->numDescendants()
int

Return number of descendants (children, grandchildren, great-grandchildren, …), optionally with conditions


Can also be used as property: $page->numDescendants
 
$page->numLinks int Total number of pages manually linking to this page in Textarea/HTML fields.  
$page->numReferences int Total number of pages referencing this page with Page reference fields.  
$page->numReferencing int Total number of other pages this page is pointing to (referencing) with Page fields.  
$page->parent()
Page

Return this page’s parent Page, or–if given a selector–the closest matching parent.


Can also be used as property: $page->parent
 
$page->parents()
PageArray

Return this page’s parent pages, or the parent pages matching the given selector.


Can also be used as property: $page->parents
 
$page->parentsUntil()
PageArray

Return all parents from current page till the one matched by $selector

 
$page->prev()
Page NullPage

Return the previous sibling page


Can also be used as property: $page->prev
 
$page->prevAll()
Page NullPage int

Return all sibling pages before this one, optionally matching a selector

 
$page->prevUntil()
PageArray

Return all sibling pages before this one until matching the one specified

 
$page->references()
PageArray array

Return pages that have Page reference fields pointing to this one (references)


Can also be used as property: $page->references
$page->referencing PageArray Return pages that this page is referencing by way of Page reference fields.  
$page->rootParent()
Page

Get the lowest-level, non-homepage parent of this page


Can also be used as property: $page->rootParent
$page->siblings()
PageArray

Return this Page’s sibling pages, optionally filtered by a selector.


Can also be used as property: $page->siblings
 

Manipulation

NameReturnSummary 
$page->addStatus($statusFlag)
$this

Add the specified status to this page

 
$page->addUrl($url)
boolAdd a new URL that redirects to this page and save immediately (returns false if already taken).
$page->delete()
bool int

Delete this page from the database

 
$page->isChanged()
bool

Has the Page changed since it was loaded?

 
$page->of()
bool

Get or set the current output formatting state of the page

 
$page->removeStatus($statusFlag)
$this

Remove the specified status from this page

 
$page->removeUrl($url)
boolRemove a URL that redirects to this page and save immediately.
$page->resetTrackChanges()
$this

Clears out any tracked changes and turns change tracking ON or OFF

 
$page->save()
bool

Save the entire page to the database, or just a field from it

 
$page->set(string $key, mixed $value)
Page WireData

Set the value of a page property

 
$page->setAndSave($key)
bool

Quickly set field value(s) and save to database

 
$page->setName(string $value)
$this

Set the page name, optionally for specific language

 
$page->setQuietly(string $key, mixed $value)
$this

Quietly set the value of a page property.

 
$page->status()
int array Page

Get or set current status


Can also be used as property: $page->status
 
$page->trash()
bool

Move this page to the trash

 

Date time

NameReturnSummary 
$page->created int Unix timestamp of when the page was created.  
$page->createdStr string Date/time when the page was created (formatted date/time string).  
$page->modified int Unix timestamp of when the page was last modified.  
$page->modifiedStr string Date/time when the page was last modified (formatted date/time string).  
$page->published int Unix timestamp of when the page was published.  
$page->publishedStr string Date/time when the page was published (formatted date/time string).  

Access

NameReturnSummary 
$page->addable()
boolReturns true if the current user can add children to the page, false if not. Optionally specify the page to be added for additional access checking.
Can also be used as property: $page->addable
$page->cloneable()
boolCan current user clone this page? Specify false for $recursive argument to ignore whether children are cloneable. 3.0.239
Can also be used as property: $page->cloneable
$page->deletable()
boolAlias of deleteable().
Can also be used as property: $page->deletable
$page->deleteable()
boolReturns true if the page is deleteable by the current user, false if not.
Can also be used as property: $page->deleteable
$page->editable()
boolReturns true if the page (and optionally field) is editable by the current user, false if not.
Can also be used as property: $page->editable
$page->getAccessParent()
Page NullPage

Returns the page from which role/access settings are inherited from

 
$page->getAccessRoles()
PageArray

Return Roles (PageArray) that have access to this page

 
$page->getAccessTemplate()
Template null

Returns the template from which role/access settings are inherited from

 
$page->hasAccessRole($role)
bool

Returns whether this page has the given access role

 
$page->listable()
boolReturns true if the page is listable by the current user, false if not.
Can also be used as property: $page->listable
$page->moveable()
boolReturns true if the current user can move this page. Optionally specify the new parent to check if the page is moveable to that parent.
Can also be used as property: $page->moveable
$page->publishable()
boolReturns true if the page is publishable by the current user, false if not.
Can also be used as property: $page->publishable
$page->restorable()
boolReturns true if page is in the trash and is capable of being restored to its original location. 3.0.107
$page->sortable()
boolReturns true if the current user can change the sort order of the current page (within the same parent).
Can also be used as property: $page->sortable
$page->trashable()
boolReturns true if the page is trashable by the current user, false if not.
Can also be used as property: $page->trashable
$page->viewable()
boolReturns true if the page (and optionally field) is viewable by the current user, false if not.
Can also be used as property: $page->viewable

Output rendering

NameReturnSummary 
$page->edit()
string bool mixed

Get front-end editable output for field (requires PageFrontEdit module to be installed)

$page->of()
bool

Get or set the current output formatting state of the page

 
$page->render()
string mixedReturns rendered page markup. Please see the PageRender::renderPage() method for arguments and usage details.
Can also be used as property: $page->render
$page->renderField(string $fieldName)
mixed string

Render given $fieldName using site/templates/fields/ markup file

$page->renderValue(mixed $value)
mixed string

Render given $value using /site/templates/fields/ markup file

Status

NameReturnSummary 
$page->addStatus($statusFlag)
$this

Add the specified status to this page

 
$page->hasStatus($status)
bool

Does this page have the given status?

 
$page->is($status)
bool

Does this page have the specified status number or template name?

 
$page->isHidden()
bool

Does this page have a 'hidden' status?

 
$page->isLocked()
bool

Does this page have a 'locked' status?

 
$page->isTrash()
bool

Is this Page in the trash?

 
$page->isUnpublished()
bool

Does this page have a 'unpublished' status?

 
$page->removeStatus($statusFlag)
$this

Remove the specified status from this page

 
$page->status()
int array Page

Get or set current status


Can also be used as property: $page->status
 
$page->statusPrevious int null Previous status, if status was changed. Null if not.  

Constants

NameReturnSummary 
Page::statusHidden const1024Page is hidden and excluded from page finding methods unless overridden by selector (name: "hidden"). 
Page::statusIncomplete const128 
Page::statusLocked const4Indicates page is locked for changes (name: "locked") 
Page::statusUnpublished const2048Page is unpublished (not publicly visible) and excluded from page finding methods unless overridden (name: "unpublished"). 

Languages

Multi-language methods require these core modules: LanguageSupport, LanguageSupportFields, LanguageSupportPageNames.

NameReturnSummary 
$page->getLanguageName()
array stringGet page name for language(s). If given a Language object, it returns a string. If given array of language names, or argument omitted, it returns an array like [ 'default' => 'hello', 'es' => 'hola' ];. 3.0.236
$page->getLanguageStatus()
array boolGet active status for language(s). If given a $language (Language or name of language) it returns a boolean. If given multiple language names (array), or argument omitted, it returns array like [ 'default' => true, 'fr' => false ];. 3.0.236
$page->getLanguageValue($language, $field)
mixedGet value for field in language (requires LanguageSupport module). $language may be ID, language name or Language object. Field should be field name (string).
$page->getLanguageValues($field)
arrayGet values for field or one or more languages (requires LanguageSupport module). $field should be field/property name (string), $langs should be array of language names, or omit for all languages. Returns array of values indexed by language name. 3.0.236
$page->getLanguages()
PageArray null

Get languages active for this page and viewable by current user

 
$page->localHttpUrl()
stringReturn the page URL (including scheme and hostname) in the current user's language, or specify $language argument (Language object, name, or ID).
$page->localName()
stringReturn the page name in the current user’s language, or specify $language argument (Language object, name, or ID), or TRUE to use default page name when blank (instead of 2nd argument).
$page->localPath()
stringReturn the page path in the current user's language, or specify $language argument (Language object, name, or ID).
$page->localUrl()
stringReturn the page URL in the current user's language, or specify $language argument (Language object, name, or ID).
$page->setLanguageName($language)
PageSet page name for language with $page->setLanguageName('es', 'hola'); or set multiple with $page->setLanguageName([ 'default' => 'hello', 'es' => 'hola' ]); 3.0.236
$page->setLanguageStatus($language)
PageSet active status for language(s), can be called as $page->setLanguageStatus('es', true); or $page->setLanguageStatus([ 'es' => true, 'br' => false ]); to set multiple. 3.0.236
$page->setLanguageValue($language, $field, $value)
PageSet value for field in language (requires LanguageSupport module). $language may be ID, language name or Language object. Field should be field name (string).
$page->setLanguageValues($field, array $values)
PageSet value for field in one or more languages (requires LanguageSupport module). $field should be field/property name (string), $values should be array of values indexed by language name. 3.0.236

System

Most system properties directly correspond to columns in the pages database table.

NameReturnSummary 
$page->created int Unix timestamp of when the page was created.  
$page->created_users_id int ID of created user.  
$page->id int The numbered ID of the current page  
$page->modified int Unix timestamp of when the page was last modified.  
$page->modified_users_id int ID of last modified user.  
$page->name string The name assigned to the page, as it appears in the URL  
$page->parent_id int The numbered ID of the parent page or 0 if homepage or not assigned.  
$page->published int Unix timestamp of when the page was published.  
$page->sort int Sort order of this page relative to siblings (applicable when manual sorting is used).  
$page->sortPrevious int null Previous sort order, if changed 3.0.235+  
$page->sortfield()
string

Return the field name by which children are sorted


Can also be used as property: $page->sortfield
 
$page->templates_id int The numbered ID of the template usedby this page.  

Advanced

NameReturnSummary 
$page->count()
int

Returns number of children page has, affected by output formatting mode.

 
$page->draft()
ProDraft int string Page arrayHelper method for drafts (added by ProDrafts).
$page->fieldgroup Fieldgroup Fieldgroup used by page template. Shorter alias for $page->template->fieldgroup (same as $page->fields)  
$page->fields Fieldgroup All the Fields assigned to this page (via its template). Returns a Fieldgroup.  
$page->getField($field)
Field null

Get a Field object in context or NULL if not valid for this page

 
$page->getFields()
FieldsArray

Returns a FieldsArray of all Field objects in the context of this Page

 
$page->getFormatted(string $key)
mixed

Get the formatted value of a field, regardless of output formatting state

 
$page->getInputfield(string $fieldName)
Inputfield InputfieldWrapper null

Get a single Inputfield for the given field name

 
$page->getIterator()
ArrayObject

Enables iteration of the page's properties and fields with PHP’s foreach()

 
$page->getMarkup(string $key)
string

Return the markup value for a given field name or {tag} string

$page->getText(string $key)
string

Same as getMarkup() except returned value is plain text

 
$page->getUnformatted(string $key)
mixed

Get the unformatted value of a field, regardless of current output formatting state

 
$page->hasField($field)
bool string

Returns whether or not given $field name, ID or object is valid for this Page

 
$page->meta()
WireDataDB string array int float

Get or set page’s persistent meta data

 
$page->outputFormatting bool Whether output formatting is enabled or not. Same as calling $page->of() with no arguments.  
$page->setQuietly(string $key, mixed $value)
$this

Quietly set the value of a page property.

 
$page->setUnformatted(string $key, mixed $value)
self

Set the unformatted value of a field, regardless of current output formatting state

 

For hooks

These methods are only useful for hooking and should not be called directly.

NameReturnSummary 
$page->callUnknown(string $method, array $arguments)
null mixed

If method call resulted in no handler, this hookable method is called.

$page->getUnknown(string $key)
null mixed

Hookable method called when a request to a field was made that didn't match anything

$page->loaded()
None

For hooks to listen to, triggered when page is loaded and ready

Urls

NameReturnSummary 
$page->addUrl($url)
boolAdd a new URL that redirects to this page and save immediately (returns false if already taken).
$page->editUrl()
string

Return the URL necessary to edit this page


Can also be used as property: $page->editUrl
 
$page->httpUrl()
string

Returns the URL to the page, including scheme and hostname


Can also be used as property: $page->httpUrl
 
$page->localHttpUrl()
stringReturn the page URL (including scheme and hostname) in the current user's language, or specify $language argument (Language object, name, or ID).
$page->localPath()
stringReturn the page path in the current user's language, or specify $language argument (Language object, name, or ID).
$page->localUrl()
stringReturn the page URL in the current user's language, or specify $language argument (Language object, name, or ID).
$page->path()
string

Returns the Page’s path from the ProcessWire installation root.


Can also be used as property: $page->path
$page->removeUrl($url)
boolRemove a URL that redirects to this page and save immediately.
$page->url()
string

Returns the URL to the page (optionally with additional $options)


Can also be used as property: $page->url
 
$page->urls()
array

Return all URLs that this page can be accessed from (excluding URL segments and pagination)


Can also be used as property: $page->urls
 

Files

NameReturnSummary 
$page->filesManager()
PagefilesManager

Return instance of PagefilesManager specific to this Page


Can also be used as property: $page->filesManager
 
$page->filesPath()
string

Returns the path for files, creating it if it does not yet exist


Can also be used as property: $page->filesPath
 
$page->filesUrl()
string

Returns the URL for files, creating it if it does not yet exist


Can also be used as property: $page->filesUrl
 
$page->hasFiles()
bool

Does the page have a files path and one or more files present in it?


Can also be used as property: $page->hasFiles
 
$page->hasFilesPath()
bool

Does the page have a files path for storing files?

 
$page->secureFiles()
bool null

Does this Page use secure Pagefiles?

 

Previous

Provides access to the previously set runtime value of some Page properties.

NameReturnSummary 
$page->namePrevious string null Previous name, if changed. Null or blank string if not.  
$page->parentPrevious Page null Previous parent, if parent was changed. Null if not.  
$page->statusPrevious int null Previous status, if status was changed. Null if not.  
$page->templatePrevious Template null Previous template, if template was changed. Null if not.  

Properties

NameReturnSummary 
$page->title string The page’s title (headline) text 

Users

NameReturnSummary 
$page->createdUser User NullPage The user that created this page. Returns a User or a NullPage.  
$page->created_users_id int ID of created user.  
$page->modifiedUser User NullPage The user that last modified this page. Returns a User or a NullPage.  
$page->modified_users_id int ID of last modified user.  

Additional methods and properties

In addition to the methods and properties above, Page also inherits the methods and properties of these classes:

API reference based on ProcessWire core version 3.0.252