$templates API variable / Templates class

Manages and provides access to all the Templates.

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

Show $var?             Show args?        

Common

NameReturnSummary 
$templates->add(string $name)
TemplateAdd and save new template (and fieldgroup) with given name and return it 
$templates->clone($item)
bool Saveable TemplateClone the given Template
$templates->delete($item)
boolDelete a Template
$templates->get($key)
Template null stringGet a template by name or ID 
$templates->getNumPages(Template $tpl)
intReturn the number of pages using the provided Template 
$templates->getPageClass(Template $template)
stringGet class name to use for pages using given Template 
$templates->getParentPage(Template $template)
Page NullPage null PageArrayReturn the parent page that this template assumes new pages are added to 
$templates->getParentPages(Template $template)
PageArrayReturn all possible parent pages for the given template, if predefined 
$templates->getTags()
arrayGet all tags used by templates
$templates->rename(Template $template, string $name)
(nothing)Rename given template (and its fieldgroup, and file, when possible) 
$templates->save($item)
boolSave a Template

For hooks

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

NameReturnSummary 
$templates->fileModified(Template $template)
(nothing)Hook called when a Template detects that its file has changed

Additional methods and properties

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

API reference based on ProcessWire core version 3.0.185

Twitter updates

  • ProcessWire 3.0.192 (dev branch) contains 11 issue fixes and 5 pull requests, over 20 commits— More
    7 January 2022
  • ProcessWire 3.0.191 core updates: updates to the installer and the profile exporter module— More
    24 December 2021
  • This week ProcessWire went on a diet, trimming the core size from 15.5 MB down to 7.5 MB by moving optional site profiles into their own GitHub repos— More
    17 December 2021

Latest news

  • ProcessWire Weekly #401
    In the 401st issue of ProcessWire Weekly we'll cover the latest core updates, check out a brand new module called Lister Native Date Format, and more. Read on!
    Weekly.pw / 15 January 2022
  • ProcessWire 3.0.190 core updates
    ProcessWire 3.0.190 has 15 commits relative to 3.0.189 and contains a mixture of issue resolutions and feature additions. This post covers them all, in addition to updates for the PageAutosave and ProFields Table modules.
    Blog / 3 December 2021
  • 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