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

Twitter updates

  • Introduction to an invoice application profile being built in ProcessWire: More
    30 September 2022
  • Stumbling upon a really nice ProcessWire-powered website, plus core updates including API improvements for ProcessWire forms— More
    9 September 2022
  • Useful new dot-and-bracket syntax options added for page.get() method— More
    2 September 2022

Latest news

  • ProcessWire Weekly #438
    In the 348th issue of ProcessWire Weekly we're going to cover the latest weekly update from Ryan, take a closer look at a couple of new third party modules, and more. Read on!
    Weekly.pw / 1 October 2022
  • Multi-language field translation export/import
    In this post we cover the details of a new module that enables export and import capabilities for multi-language fields in ProcessWire.
    Blog / 5 August 2022
  • Subscribe to weekly ProcessWire news

“Yesterday I sent the client a short documentation for their ProcessWire-powered website. Today all features already used with no questions. #cmsdoneright—Marc Hinse, Web designer/developer