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.

Common / Traversal / Manipulation / Date time / Access / Output rendering / Status / Constants / Languages / System / Advanced / For hooks / Internal

Common

Name Return Summary  
$page->child() Page or NullPage Return the page’s first single child that matches the given selector.
Can also be used as property: $page->child
$page->children() PageArray or array Return this page’s children, optionally filtered by a selector
Can also be used as property: $page->children
$page->created int Unix timestamp of when the page was created.
$page->createdUser User The user that created this page. Returns a User or a NullUser.
$page->find() PageArray Find pages matching given selector in the descendent hierarchy
$page->get(string $key) mixed Get the value of a Page property (see details for several options)
$page->hasChildren() int Return the number of visible children, optionally with conditions
Can also be used as property: $page->hasChildren
$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->matches($selector) bool Given a selector, return whether or not this Page matches it
$page->modified int Unix timestamp of when the page was last modified.
$page->modifiedUser User The user that last modified this page. Returns a User or a NullUser.
$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->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->published int Unix timestamp of when the page was published.
$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->set(string $key, mixed $value) Page or WireData Set the value of a page property
$page->template Template or string The Template object this page is using. The template name (string) may also be used for assignment.
$page->title string The page's title (headline) text
$page->url() string Returns the URL to the page (optionally with additional $options)
Can also be used as property: $page->url

Traversal

Name Return Summary  
$page->child() Page or NullPage Return the page’s first single child that matches the given selector.
Can also be used as property: $page->child
$page->children() PageArray or array Return this page’s children, optionally filtered by a selector
Can also be used as property: $page->children
$page->closest($selector) Page or NullPage Find the closest parent page matching your selector
$page->find() PageArray Find pages matching given selector in the descendent hierarchy
$page->hasChildren() int Return the number of visible children, optionally with conditions
Can also be used as property: $page->hasChildren
$page->index() int Return the index/position of this page relative to siblings.
Can also be used as property: $page->index
$page->next() Page or NullPage Return the next sibling page
Can also be used as property: $page->next
$page->nextAll() PageArray or 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->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->parentPrevious Page or null Previous parent, if parent was changed.
$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 or NullPage Return the previous sibling page
Can also be used as property: $page->prev
$page->prevAll() Page, NullPage or 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->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

Name Return Summary  
$page->addStatus($statusFlag) $this Add the specified status to this page
$page->delete() bool 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->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 or 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 or 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

Name Return Summary  
$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

Name Return Summary  
$page->addable($pageToAdd = null) bool Returns 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.
$page->deletable() bool Alias of deleteable().
$page->deleteable() bool Returns true if the page is deleteable by the current user, false if not.
$page->editable($field = '', $checkPageEditable = true) bool Returns true if the page (and optionally field) is editable by the current user, false if not.
$page->getAccessParent() Page or 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 or 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() bool Returns true if the page is listable by the current user, false if not.
$page->moveable($newParent = null) bool Returns true if the current user can move this page. Optionally specify the new parent to check if the page is moveable to that parent.
$page->publishable() bool Returns true if the page is publishable by the current user, false if not.
$page->sortable() bool Returns true if the current user can change the sort order of the current page (within the same parent).
$page->trashable($orDeleteable = false) bool Returns true if the page is trashable by the current user, false if not.
$page->viewable($field = '', $checkTemplateFile = true) bool Returns true if the page (and optionally field) is viewable by the current user, false if not.

Output rendering

Name Return Summary  
$page->of() bool Get or set the current output formatting state of the page
$page->render($fieldName = '') string or mixed Returns rendered page markup. If given a $fieldName argument, it behaves same as the renderField() method.
Can also be used as property: $page->render
$page->renderField(string $fieldName) mixed or string Render given $fieldName using site/templates/fields/ markup file
$page->renderValue(mixed $value) mixed or string Render given $value using /site/templates/fields/ markup file

Status

Name Return Summary  
$page->addStatus($statusFlag) $this Add the specified status to this page
$page->hasStatus($status) bool Does this page have the given status?
$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 or Page Get or set current status
Can also be used as property: $page->status
$page->statusPrevious int or null Previous status, if status was changed.

Constants

Name Return Summary  
Page::statusHidden const 1024 Page is hidden and excluded from page finding methods unless overridden by selector (name: "hidden").
Page::statusLocked const 4 Indicates page is locked for changes (name: "locked")
Page::statusUnpublished const 2048 Page 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.

Name Return Summary  
$page->getLanguageValue($language, $field) Page Get value for field in language (requires LanguageSupport module). $language may be ID, language name or Language object. Field should be field name (string).
$page->getLanguages() PageArray or null Get languages active for this page and viewable by current user
$page->localHttpUrl($language = null) string Return the page URL (including scheme and hostname) in the current user's language, or specify $language argument (Language object, name, or ID).
$page->localName($language = null) string Return the page name in the current user's language, or specify $language argument (Language object, name, or ID).
$page->localPath($language = null) string Return the page path in the current user's language, or specify $language argument (Language object, name, or ID).
$page->localUrl($language = null) string Return the page URL in the current user's language, or specify $language argument (Language object, name, or ID).
$page->setLanguageValue($language, $field, $value) Page Set value for field in language (requires LanguageSupport module). $language may be ID, language name or Language object. Field should be field name (string).

System

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

Name Return Summary  
$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->templates_id int The numbered ID of the template usedby this page.

Advanced

Name Return Summary  
$page->count() int Returns number of children page has, affected by output formatting mode.
$page->editUrl() string Return the URL necessary to edit this page
Can also be used as property: $page->editUrl
$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->filesManager() PagefilesManager Return instance of PagefilesManager specific to this Page
Can also be used as property: $page->filesManager
$page->getField($field) Field or 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 or null Get a single Inputfield for the given field name
$page->getInputfields() null or InputfieldWrapper Return all Inputfield objects necessary to edit this page
$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 output formatting state
$page->hasField($field) bool Returns whether or not $field is valid for this Page
$page->isPublic() bool Is this page public and viewable by all?
$page->namePrevious string Previous name, if changed. Blank if not.
$page->outputFormatting bool Whether output formatting is enabled or not.
$page->setQuietly(string $key, mixed $value) $this Quietly set the value of a page property.
$page->templatePrevious Template or null Previous template, if template was changed.

For hooks

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

Name Return Summary  
$page->callUnknown(string $method, array $arguments) null or mixed If method call resulted in no handler, this hookable method is called.
$page->getUnknown(string $key) null or mixed Hookable method called when a request to a field was made that didn't match anything
$page->loaded() (nothing) For hooks to listen to, triggered when page is loaded and ready

Internal

Name Return Summary  
$page->sortfield() string Return the field name by which children are sorted
Can also be used as property: $page->sortfield

Additional methods and properties

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