Get or set a runtime site setting

This is a simple helper function for maintaining runtime settings in a site profile. It simply sets and gets settings that you define. It is preferable to using ProcessWire’s $config or config() API var/function because it is not used to store anything else for ProcessWire. It is also preferable to using a variable (or variables) because it is always in scope and accessible anywhere in your template files, even within existing functions.

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

Example

// set a setting named “foo” to value “bar”
setting('foo', 'bar');

// get a setting named “foo”
$value = setting('foo');

// set or replace multiple settings
setting([
  'foo' => 'value',
  'bar' => 123,
  'baz' => [ 'foo', 'bar', 'baz' ]
]);

// get all settings in associative array
$a = setting();

// to unset a setting
setting(false, 'foo');

Usage

// basic usage
$array = setting();

// usage with all arguments
$array = setting($name = '', $value = null);

Arguments

NameType(s)Description
name (optional)string, array

Setting name, or array to set multiple

value (optional)string, int, array, float, mixed

Value to set, or omit if getting value of $name (default=null)

Return value

array string int bool mixed null


Functions methods and properties

API reference based on ProcessWire core version 3.0.137

Twitter updates

  • We added WebP image support this year and many have been adopting it in existing projects. We look at a process used for migrating existing websites to WebP images— from preliminary considerations to implementation & testing, w/lots of tips & tricks too: More
    16 August 2019
  • Core version 3.0.137 on the dev branch adds the ability to hook multiple methods at once, in a single call. This post details how it works and provides a useful example of how you might put it to use in your development environment— More
    2 August 2019
  • ProcessWire 3.0.136 updates our CKEditor version and adds a new backtrace() method to the core Debug class— More
    26 July 2019

Latest news

  • ProcessWire Weekly #275
    In the 275th issue of ProcessWire Weekly we're going to walk you through the new features included in ProcessWire 3.0.138, cover some WebP related stuff, and highlight recent forum posts and online resources. Read on!
    Weekly.pw / 17 August 2019
  • WebP images on an existing site
    In this post we’ll look at a process used for migrating an existing website to use WebP images. We’ll cover everything from preliminary considerations to implementation and testing, with lots of tips and tricks along the way.
    Blog / 16 August 2019
  • 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