$page->meta() method

Get or set page’s persistent meta data

This meta data is managed in the DB. Setting a value immediately saves it in the DB, while getting a value immediately loads it from the DB. As a result, this data is independent of the usual Page load and save operations. This is primarily for internal core use, but may be useful for other specific non-core purposes as well.

Note that this data is tied to the page where you call it. Meta data is completely free-form and has no connection to ProcessWire fields.

Values for meta data must be basic PHP types, whether arrays, strings, numbers, etc. Please do not use objects for meta values at this time.

Available since version 3.0.133.

Example

// set and save a meta value 
$page->meta()->set('colors', [ 'red, 'green', 'blue' ]);

// get a meta value
$colors = $page->meta()->get('colors');

// alternate shorter syntax for either of the above
$page->meta('colors', [ 'red', 'green', 'blue' ]); // set
$colors = $page->meta('colors'); // get

// delete a meta value
$page->meta()->remove('colors');

// get the WireDataDB instance that stores the meta values,
// it has all the same methods as WireData objects...
$meta = $page->meta();

// ...such as, get all values in an array:
$values = $meta->getArray();

Usage

// basic usage
$wireDataDB = $page->meta();

// usage with all arguments
$wireDataDB = $page->meta($key = '', $value = null);

Arguments

NameType(s)Description
key (optional)string, bool

Omit to get the WireData instance or specify property name to get or set.

value (optional)null, mixed

Value to set for given $key or omit if getting a value.

Return value

WireDataDB string array int float


$page methods and properties

API reference based on ProcessWire core version 3.0.236

Latest news

  • ProcessWire Weekly #532
    In the 532nd issue of ProcessWire Weekly we'll cover the latest core updates, check out a couple of brand-new third party modules, and more. Read on!
    Weekly.pw / 20 July 2024
  • Page List Custom Children module
    This simple module gives you the ability to customize the parent/child relationship as it appears in the admin page list, enabling child pages to appear under more than one parent.
    Blog / 28 June 2024
  • Subscribe to weekly ProcessWire news

“We were really happy to build our new portfolio website on ProcessWire! We wanted something that gave us plenty of control on the back-end, without any bloat on the front end - just a nice, easy to access API for all our content that left us free to design and build however we liked.” —Castus, web design agency in Sheffield, UK