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

Twitter updates

  • ProcessWire 3.0.187: This week we have some very useful new additions to both the core Repeater Fieldtype and the ProFields Repeater Matrix Fieldtype. This post covers all the details along with a couple of brief demonstration videos— More
    22 October 2021
  • ProcessWire 3.0.185 (dev) core updates, plus new Session Allow module— More
    17 September 2021
  • Three new ProcessWire Textformatter modules: Find/Replace, Markdown in Markup, and Emoji— More
    3 September 2021

Latest news

  • ProcessWire Weekly #389
    The 389th issue of ProcessWire Weekly we'll check out the latest core updates, introduce the Session Viewer module, and more. Read on!
    Weekly.pw / 23 October 2021
  • New Repeater and Repeater Matrix features
    This week we have some very useful new additions to both the core Repeater Fieldtype and the ProFields Repeater Matrix Fieldtype. This post covers all the details along with a couple of brief demonstration videos. 
    Blog / 22 October 2021
  • 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