$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.200

Twitter updates

  • A review of weekly core updates, plus a simple recipe for a very effective listing cache—More
    24 June 2022
  • Weekly update: Making ProcessWire render pages at old WordPress URLs (or building a simple/custom URL router in PW): More
    17 June 2022
  • New post: ProcessWire now comes with just 1 site installation profile, the "blank" profile. It makes very few assumptions, making it a minimal though excellent starting point. Here’s how you might use it— More
    10 June 2022

Latest news

  • ProcessWire Weekly #424
    In the 424th issue of ProcessWire Weekly we'll check out the latest weekly update from Ryan, introduce a new third party module, and more. Read on!
    Weekly.pw / 25 June 2022
  • Starting a site with the “blank” profile
    ProcessWire 3.0.200+ comes with just 1 site installation profile, the site-blank profile. This profile makes very few assumptions, making it a minimal though excellent starting point. Here’s how you might use it. 
    Blog / 10 June 2022
  • Subscribe to weekly ProcessWire news

“Yesterday I sent the client a short documentation for their ProcessWire-powered website. Today all features already used with no questions. #cmsdoneright—Marc Hinse, Web designer/developer