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.133

Twitter updates

  • ProcessWire 3.0.133 adds a useful new Page::meta() method for a new type of page-specific persistent data storage, adds the ability for users to create their own bookmarks in Lister, and has a handy and time saving update for the asmSelect input type— More
    14 June 2019
  • New post: This week we’ll take a look at 3 different WEBP image strategies that you can use in ProcessWire 3.0.132+. Then we’ll dive into a major update for the Google Client API module, and finish up by outlining some useful new updates in FormBuilder— More
    31 May 2019
  • New post: This week we've added WEBP support in ProcessWire thanks to a GitHub pull request from Horst Nogajski. This enables you to have highly optimized image output in PW and I think you’ll really like the difference it makes— More
    24 May 2019

Latest news

  • ProcessWire Weekly #266
    In the 266th issue of ProcessWire Weekly we're going to take a closer look at ProcessWire 3.0.133 (dev), introduce a third party module called Repeater Images, and highlight a recently released site belonging to the Australian Antarctic Division. Read on!
    Weekly.pw / 15 June 2019
  • ProcessWire 3.0.133 core updates
    ProcessWire 3.0.133 adds a useful new $page->meta() method for a new type of page-specific persistent data storage, adds the ability for users to create their own bookmarks in Lister, and has a handy and time saving update for the asmSelect input type. Read on for all the details, examples and screenshots.
    Blog / 14 June 2019
  • Subscribe to weekly ProcessWire news

“ProcessWire is like a breath of fresh air. So powerful yet simple to build with and customise, and web editors love it too.” —Margaret Chatwin, Web developer