, (*1)
Dionysos Select Field
![CodeFactor Grade][codefactor-image]
![MIT][license-image], (*2)
  
  This component is a part of the Olympus Dionysos fields for WordPress.
  It uses the default WordPress select or multiselect field., (*3)
composer require getolympus/olympus-dionysos-field-select
Table of contents
Field initialization • Variables definition • Texts definition • Retrive data • Release history • Contributing, (*4)
Field initialization
Use the following lines to add a select field in your WordPress admin pages or custom post type meta fields:, (*5)
// Uniq choice version
return \GetOlympus\Dionysos\Field\Select::build('my_select_field_id', [
    'title'       => 'Select a Minion that you may know',
    'default'     => 'kevin',
    'description' => 'A very important question! Pay attention to it ;)',
    'multiple'    => false,
    'options'     => [
        'kevin' => 'Kevin',
        'mel'   => 'Mel',
        'dave'  => 'Dave',
        'bob'   => 'Bob',
    ],
    /**
     * Texts definition
     * @see the `Texts definition` section below
     */
    't_keyboard'   => 'Press the <kbd>CTRL</kbd> or <kbd>CMD</kbd> button to select more than one option.',
    't_no_options' => 'The field does no have any options.',
]);
// Multiple choice version
return \GetOlympus\Dionysos\Field\Select::build('my_multiselect_field_id', [
    'title'       => 'What are your preferred personas?',
    'default'     => ['minions', 'lapinscretins'],
    'description' => 'The White House needs your feedback asap!',
    'multiple'    => true,
    'options'     => [
        'minions'       => 'The Minions',
        'lapinscretins' => 'The Lapins Crétins',
        'marvel'        => 'All Marvel Superheroes',
        'franklin'      => 'Franklin (everything is possible)',
        'spongebob'     => 'Spongebob (nothing to say... Love it!)',
    ],
    /**
     * Texts definition
     * @see the `Texts definition` section below
     */
    't_keyboard'   => 'Press the <kbd>CTRL</kbd> or <kbd>CMD</kbd> button to select more than one option.',
    't_no_options' => 'The field does no have any options.',
]);
Variables definition
The variables definition depends on multiple value:
- set to false, a uniq string value is stored in Database
- set to true, an array of key values is stored in Database, (*6)
In all cases:, (*7)
| Variable | 
Type | 
Default value if not set | 
Accepted values | 
title | 
String | 
'Radio button' | 
empty | 
description | 
String | 
empty | 
empty | 
options | 
Array | 
empty | 
Array with a key/value options | 
Uniq choice
| Variable | 
Type | 
Default value if not set | 
Accepted values | 
default | 
String | 
empty string | 
One of the options keys | 
multiple | 
Boolean | 
false | 
nothing else | 
Multiple choices
| Variable | 
Type | 
Default value if not set | 
Accepted values | 
default | 
String | 
empty array | 
Array with options keys | 
multiple | 
Boolean | 
true | 
nothing else | 
Texts definition
| Code | 
Default value | 
Definition | 
t_keyboard | 
Press the CTRL or CMDbr/button to select more than onebr/option. | 
Used as a notice to help users to user multiselect field | 
t_no_options | 
The field does no have any options. | 
Used as an error in the case no options have been set | 
Retrive data
Retrieve your value from Database with a simple get_option('my_select_field_id', '') or get_option('my_multiselect_field_id', []) (see WordPress reference):, (*8)
// Get select from Database
$select = get_option('my_select_field_id', '');
// Display value
echo '
'.$select.', master of the ceremony
';
// Get multiselect from Database
$multiselect = get_option('my_multiselect_field_id', []);
if (!empty($multiselect)) {
    echo '
And the nominees are:, (*9)
';
    echo '
';
    foreach ($multiselect as $value) {
        echo '- '.$value.'
 '; // Will display key item options!
    }
    echo '
';
}
Release History
| Version | 
Note | 
| 0.0.12 | 
Change main css class | 
| 0.0.11 | 
New Olympus components compatibilitybr/Change repository to be a part of Dionysos fields | 
| 0.0.10 | 
Remove twig dependency from composer | 
Contributing
- Fork it (https://github.com/GetOlympus/olympus-dionysos-field-select/fork)
 
- Create your feature branch (
git checkout -b feature/fooBar) 
- Commit your changes (
git commit -am 'Add some fooBar') 
- Push to the branch (
git push origin feature/fooBar) 
- Create a new Pull Request
 
Built with ♥ by Achraf Chouk ~ (c) since a long time., (*10)