Get or set an output region (primarily for front-end output usage)

This function is an convenience for storing markup that ultimately gets output in a _main.php file (or whatever file $config->appendTemplateFile is set to). It is an alternative to passing variables between included files and provides an interface for setting, appending, prepending and ultimately getting markup (or other strings) for output. It’s designed for use the the “Delayed Output” strategy, though does not necessarily require it.

This function can also be accessed as wireRegion(), and that function is always available regardless of whether the Functions API is enabled or not.

Note: unlike other functions in the Functions API, this function is not related to API variables.

Example

// define a region
region('content', '<p>this is some content</p>');

// prepend some text to region
region('+content', '<h2>Good morning</h2>');

// append some text to region
region('content+', '<p><small>Good night</small></p>');

// output a region
echo region('content');

// get all regions in an array
$regions = region('*');

// clear the 'content' region
region('content', '');

// clear all regions
region('*', '');

Usage

// basic usage
$string = region();

// usage with all arguments
$string = region(string $key = '', $value = null);

Arguments

NameType(s)Description
key (optional)string

Name of region to get or set.

  • Specify "*" to retrieve all defined regions in an array.
  • Prepend a "+" to the region name to have it prepend your given value to any existing value.
  • Append a "+" to the region name to have it append your given value to any existing value.
  • Prepend a "++" to region name to make future calls without "+" automatically prepend.
  • Append a "++" to region name to make future calls without "+" to automatically append.
value (optional)null, string

If setting a region, the text that you want to set.

Return value

string null bool array

Returns string of text when getting a region, NULL if region not set, or TRUE if setting region.


Functions methods and properties

API reference based on ProcessWire core version 3.0.161

Twitter updates

  • ProcessWire 3.0.162 continues improvements to selector operators, fixes various minor issues, adds new API convenience methods, improves documentation, optimizes and refactors various portions of code and DB queries, and more— More
    10 July 2020
  • New dedicated page in our online documentation for Selector Operators: More
    10 July 2020
  • New ProcessWire query expansion search operators can now add automatic word inflections and lemmatisation, enabling you to build even smarter search engines with ProcessWire. More
    3 July 2020

Latest news

  • ProcessWire Weekly #322
    In the 322nd issue of ProcessWire Weekly we're going to focus on the latest core updates, take a closer look at the newly released Wire Text Tools (EN) module, and introduce a brand new site of the week. Read on!
    Weekly.pw / 11 July 2020
  • Powerful new text-searching abilities in 3.0.160
    In ProcessWire 3.0.160 we’ve got some major upgrades and additions to our text-search abilities. This brings a whole new level of power to $pages->find() and similar API calls, especially when it comes to search engine type queries.
    Blog / 19 June 2020
  • Subscribe to weekly ProcessWire news

I just love the easy and intuitive ProcessWire API. ProcessWire rocks!” —Jens Martsch, Web developer